如何将DialogFragment移出中心?

时间:2013-05-22 10:22:53

标签: android fragment dialogfragment

是否可以使用DialogFragment将其移出中心并将其放在屏幕上的任何位置?

3 个答案:

答案 0 :(得分:8)

您可以使用

getDialog().getWindow().setAttributes(param);

onCreateView()
像这样

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
    getDialog().getWindow().setGravity(Gravity.CENTER_HORIZONTAL | Gravity.TOP);
    WindowManager.LayoutParams param = getDialog().getWindow().getAttributes();
    param.width = LayoutParams.MATCH_PARENT;
    param.softInputMode = WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE;
    param.x = 100;
    param.y = 100;
   .
   .
    getDialog().getWindow().setAttributes(p);
   .
   .
}

答案 1 :(得分:5)

我使用

取得了成功
 Window window = dialog.getWindow();
 WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
 lp.gravity = Gravity.TOP | Gravity.RIGHT;
 lp.x = 100;
 lp.y = 100;
 window.setAttributes(lp);

将我的对话框放在右上角略微向下的位置。此代码位于onCreateDialog()

答案 2 :(得分:1)

我经历了很多尝试所有程序化解决方案而没有结果。最后,我从XML文件中完成了它,而没有Java类中的任何额外代码。

我所做的全部是制作父高match_parent,并为其设置gravity,其值为center

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
<!--The following two lines-->
android:layout_height="match_parent"
android:gravity=“center"
android:orientation="vertical">

<Button
    android:id="@+id/button_1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="20dp"
    android:background="@android:color/white"
    android:gravity="center"
    android:padding="10dp"
    android:text="@string/hide"
    android:textColor="@android:color/holo_blue_dark" />

<Button
    android:id="@+id/button_2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="10dp"
    android:background="@android:color/white"
    android:gravity="center"
    android:padding="10dp"
    android:text="@string/cancel"
    android:textColor="@android:color/holo_blue_dark" />