【问题标题】:Dialog on AppCompatActivity has no title. Why?AppCompatActivity 上的对话框没有标题。为什么?
【发布时间】:2018-03-28 18:03:03
【问题描述】:

我正在使用 API 27 进行编译,并在 AppCompatActivity 上显示一个具有此主题的对话框:

<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

整个应用程序的主题是这样的:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

我正在使用此代码显示对话框:

final Dialog dialog = new Dialog(mContext);
dialog.setTitle("Valorar " + APP_TITLE);
dialog.setContentView(sv);        
dialog.show(); 

问题是对话框显示没有标题,我不明白为什么。

我在 Activity 主题或 Dialog 创建逻辑上做错了吗?

【问题讨论】:

  • 你尝试过使用活动或片段活动吗?

标签: android dialog android-theme android-dialog appcompatactivity


【解决方案1】:

我建议使用AlertDialog 而不是简单的Dialog。如果您使用 AlertDialog 的支持库版本,您还将获得旧 API 级别的材料设计(而不是 Holo)。

这也将解决您的活动主题破坏对话框的标题。

对你来说,改变很简单:

new AlertDialog.Builder(mContext)
        .setTitle("Valorar " + APP_TITLE)
        .setView(sv)
        .show();

【讨论】:

    【解决方案2】:
     <item name="windowNoTitle">true</item>
    

    这会禁用标题,将其设置为false ..

     <item name="windowNoTitle">false</item>
    

    来自您的活动主题

    您可以通过编程方式尝试:-

       final Dialog dialog = new Dialog(mContext);
       Window window = dialog.getWindow();
        if (window != null) {
            window.requestFeature(Window.FEATURE_NO_TITLE);
        }
    

    【讨论】:

      【解决方案3】:

      我也遇到了同样的问题,你是对的。警报对话框不会在 NoActionBar 活动中显示标题栏,我必须在我的 NoActionBar 主题中专门定义一个 alertDialogTheme

      <style name="AppTheme.NoActionBar">
          <item name="windowActionBar">false</item>
          <item name="windowNoTitle">true</item>
          <item name="alertDialogTheme">@style/<your dialog theme></item>
      </style>
      

      你可以直接在上面使用Theme.AppCompat.Light.Dialog.Alert(或类似的)或者定义你自己的作为父对象

      【讨论】:

      • 如何为我的对话框指定主题?以及如何在该示例中指定我想要的标题?请问你能改进你的样品吗?谢谢
      • 这将是你的“AppTheme.NoActionBar”风格的一部分,我已经编辑了答案
      猜你喜欢
      • 2015-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多