【发布时间】:2015-06-23 01:14:44
【问题描述】:
我总是使用styles.xml 或requestWindowFeature(Window.FEATURE_NO_TITLE) 中的android:windowNoTitle 创建没有标题的自定义对话框以使其居中(垂直和水平),但我的一些对话框不是水平居中的,例如这个对话框:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:padding="20dp"
android:gravity="center"
android:background="@drawable/dialog_bg" >
<include
android:layout_width="wrap_content"
android:layout_height="wrap_content"
layout="@layout/loading_s"/>
<TextView
android:id="@+id/message"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:gravity="center_vertical"
android:text="@string/loading"
android:textColor="@color/dialog_text"
android:textSize="@dimen/dialog_title_text_size" />
</LinearLayout>
这是创建对话框的方法:
@Override
public Dialog onCreateDialog(Bundle savedInstanceState)
{
View v = LayoutInflater.from(getActivity()).inflate(R.layout.dlg_progress, null);
Dialog dlg = new Dialog(getActivity(), R.style.My_Dialog_Style); //My_Dialog_Style contains android:windowNoTitle = true
dlg.setContentView(v);
dlg.setCanceledOnTouchOutside(false);
dlg.setCancelable(true);
return dlg;
}
这是它在屏幕上的显示方式
如果我删除 android:windowNoTitle 属性,此对话框将正确显示,因此仅在使用没有标题的对话框时才会出现问题。
有谁知道为什么会发生这种情况以及如何使对话框始终位于屏幕中心?
【问题讨论】:
-
如何创建对话框?这是
DialogFragment吗? -
是的,这是一个 DialogFragment,请参阅更新以了解我如何创建 Dialog。