1

我有一个没有任何主题的应用程序。我想只在对话框上保留默认的 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 主题出现。

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

4

2 回答 2

1

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

于 2013-10-08T19:46:58.923 回答
0

style另一种解决方案是为 created分配一个Dialog

Dialog dialog = new Dialog(mContext, R.style.Theme_Dialog);

然后,styles.xmlvalues文件夹中定义您的主题:

  <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.xmlApplication选项卡),然后在ApplicationAttributes下查找Theme,它将是直接的system_theme或来自project-resources的主题,如果是,请知道它的名称,您将找到它存储在该名称下的文件中。styles.xml

于 2014-10-02T11:17:07.077 回答