如何在对话框上应用默认主题

时间:2013-10-08 19:10:26

标签: android dialog android-theme

我有一个没有任何主题的应用程序。 我想只在对话框上保留默认的android主题。

为此,我创建了一个自定义对话框(MyDialog说)。在构造函数中,我放了:

public MyDialog() {
    if (getAndroidVersion() >= Build.VERSION_CODES.HONEYCOMB)
        setStyle(DialogFragment.STYLE_NORMAL,
                android.R.style.Theme_Holo_Dialog_NoActionBar);
}

但是当对话框出现时,它没有任何主题。事实上,在Android 4.2上进行测试时,对话框会显示旧的Android主题。

如何显示当前版本的对话框?

2 个答案:

答案 0 :(得分:1)

尝试使用AlertDialog.Builder类来构建对话框。使用AlertDialog.Builder(Context context, int theme)设置对话框主题。

答案 1 :(得分:0)

另一种解决方案是为创建的style

分配一定的Dialog
Dialog dialog = new Dialog(mContext, R.style.Theme_Dialog);

然后,在styles.xml中定义您的主题,该主题位于文件夹中:

  <style name="Theme_Dialog" parent="@android:style/Theme">   <!-- or whatever Theme you want -->
     <item name="android:windowNoTitle">true</item>
     <item name="android:windowBackground">@android:color/transparent</item>
  </style>

和您的情况(默认应用主题),只需转到AndroidManifest.xml应用标签),然后在下查找主题 ApplicationAttributes ,它将是 system_theme 或来自 project-resources 的主题,如果是,请知道它的名称,您会发现它存储在{{ 1}}该名称下的文件。