私は常にタイトルなしでカスタム ダイアログを作成しandroid:windowNoTitle
、 instyles.xml
またはを使用して中央揃え (垂直方向と水平方向の両方) にしrequestWindowFeature(Window.FEATURE_NO_TITLE)
ますが、一部のダイアログは水平方向の中央にありません。たとえば、次のダイアログです。
<?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
すると、このダイアログが正しく表示されるため、タイトルのないダイアログを使用した場合にのみ問題が発生します。
なぜこれが起こるのか、そしてダイアログを常に画面の中央に配置する方法を知っている人はいますか?