Android DialogFragment标题未显示

Tar*_*ury 39 android android-dialogfragment

创建自定义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;
}
Run Code Online (Sandbox Code Playgroud)

上面的代码在23级以上的API级别上运行正常.对于API 23,标题根本没有显示.

知道为什么吗?以及如何在API 23上显示标题?

Tar*_*ury 57

通过在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>
Run Code Online (Sandbox Code Playgroud)

  • 真的不明白为什么他们在API23中改变了这一点 (6认同)
  • 谢谢!我把头发拉了出来.我不确定为什么windowNoTitle在API 23之后似乎默认为true但是感谢你的修复! (2认同)
  • 使用`parent ="@ style/Theme.AppCompat.Dialog"`进行黑暗对话. (2认同)

Hps*_*urn 44

在你的风格:

<style name="CustomDialog" parent="@style/Theme.AppCompat.Light.Dialog">
    <item name="android:windowNoTitle">false</item>
</style>
Run Code Online (Sandbox Code Playgroud)

如果您的对话框是片段:

MyFragment myFragment = new MyFragment();
myFragment.setStyle(DialogFragment.STYLE_NORMAL, R.style.CustomDialog);
Run Code Online (Sandbox Code Playgroud)