カスタムDialogFragmentを作成するとき、次を使用してタイトルを設定します。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_dialog_add, container, false);
// Setting title here
getDialog().setTitle("Add New");
return v;
}
上記のコードは、23より古いAPIレベルで正常に機能します。API23の場合、タイトルはまったく表示されません。
理由は何ですか? API 23でタイトルを表示する方法は?
以下をstyles.xmlに追加して解決しました。
<item name="Android:dialogTheme">@style/CustomDialog</item>
<style name="CustomDialog" parent="@style/Theme.AppCompat.Light.Dialog">
<item name="Android:windowNoTitle">false</item>
</style>
あなたのスタイルで:
<style name="CustomDialog" parent="@style/Theme.AppCompat.Light.Dialog">
<item name="Android:windowNoTitle">false</item>
</style>
ダイアログがフラグメントの場合:
MyFragment myFragment = new MyFragment();
myFragment.setStyle(DialogFragment.STYLE_NORMAL, R.style.CustomDialog);