在Android活动中显示位于右上角的对话框

3
如何在Android活动中的右上角显示对话框。
以下是我对话框框代码:
item.xml
 <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="150dp"
    android:layout_height="wrap_content" >

    <com.CustomToggleButton
        android:id="@+id/toggleButton2"
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:textOff="@string/off_txt"
        android:textOn="@string/on_txt" />

</TableLayout>

ActivityMy.java

 dialog_box = new Dialog(ActivityMy.this);
                        dialog_box.setContentView(R.layout.item);
                        dialog_box.show();
2个回答

7

这样做:

Window window = dialog.getWindow();
WindowManager.LayoutParams wlp = window.getAttributes();
wlp.gravity = Gravity.TOP | Gravity.RIGHT;

wlp.width = LayoutParams.MATCH_PARENT;
wlp.flags &= ~WindowManager.LayoutParams.FLAG_DIM_BEHIND;
window.setAttributes(wlp);

2

如果你想要添加一些边距,可以使用

Window window = dialog.getWindow();
WindowManager.LayoutParams wlp = window.getAttributes();
wlp.gravity = Gravity.TOP | Gravity.RIGHT;
wlp.width = LayoutParams.MATCH_PARENT;
wlp.y=100   //if you want give margin from top
wlp.x=100     //if you want give margin from left
wlp.flags &= ~WindowManager.LayoutParams.FLAG_DIM_BEHIND;
window.setAttributes(wlp);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接