android - setTitle 到 AppCompatDialog 不工作

标签 android dialog android-appcompat

我正在尝试使用新的 AppCompat 22.1 功能 AppCompatDialog,但它显示没有标题的对话框,但我正在使用方法 setTitle。如果我将 AppCompatDialog 更改为 Dialog 一切正常。这是 AppCompatDialog 中的错误?

这是我的对话代码:

final AppCompatDialog dialog = new AppCompatDialog(ctx);
dialog.setTitle(R.string.choose_mode);
dialog.setContentView(R.layout.dialog_with_list);

ListView listView = (ListView) dialog.findViewById(R.id.list_view);

List<ModeItemModel> modesList = new ArrayList<ModeItemModel>();
modesList.add(new ModeItemModel(GUI_MANUAL));
modesList.add(new ModeItemModel(GUI_GPS));
listView.setAdapter(new ModeItemsAdapter(ctx, R.layout.list_item_ico_with_text, modesList));
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
        //Do Action

        dialog.cancel();
    }
});
dialog.setCancelable(true);
dialog.show();

最佳答案

正如@Eddwhis 在 <item name="windowNoTitle">true</item> 上方的评论中指出的那样在 Theme 中还隐藏了对话框的标题。 我通过添加自定义 AppCompatDialgStyle 来修复它,我在其中设置了 <item name="windowNoTitle">false</item>为假。

基本主题:

<style name="Theme.App.Base" parent="Theme.AppCompat.Light.DarkActionBar,">
   ...
   <item name="alertDialogTheme">@style/Theme.App.AppCompatDialogStyle</item>
   <item name="dialogTheme">@style/Theme.App.AppCompatDialogStyle</item>
</style>

NoActionBar 主题:

<style name="Theme.App.NoActionBar" parent="@style/Theme.App.Base">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

我的对话框风格:

<style name="Theme.App.AppCompatDialogStyle" parent="Theme.AppCompat.Light.Dialog">
    <item name="colorAccent">#f00</item>
    <item name="android:textColorPrimary">@color/black</item>
    <item name="android:background">@color/red</item>
    <item name="windowNoTitle">false</item> <!-- that's the important bit -->
</style>

关于android - setTitle 到 AppCompatDialog 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29893221/

相关文章:

android - java.net.UnknownHostException : graph. facebook.com 问题

android - 媒体播放器的问题

dialog - 如何在 WiX 安装程序的自定义对话框上启用关闭按钮

android - 如何删除或更改 SearchView actionBar 中的 searchview 图标?

android - 如何在左侧创建带有自定义按钮的工具栏?

android - 使用 AppCompat-v7 22 的对话框蒙皮会在 api < 21 上产生难看的阴影

Android 应用程序卸载批处理/shell 脚本?

android - 当应用程序不在后台或前台时,无法将通知推送到通知管理器

android - 在 DialogPreference 中隐藏默认按钮

Java JOptionPane 对话框 NullPointerException