【问题标题】:AppCompat Theme Error when using NoActionBar使用 NoActionBar 时出现 AppCompat 主题错误
【发布时间】:2015-11-24 15:36:36
【问题描述】:

我正在为我的整个应用程序使用工具栏。所以我已经将我的应用程序主题设置为 Theme.AppCompat.Light.NoActionBar 但我需要在我的应用程序的一部分中显示一个警报对话框。当我尝试显示警报对话框时,我收到关于 Theme.Appcompat

的运行时错误

我的 manifest.xml 文件

<application
    android:allowBackup="true"
    android:icon="@drawable/app_icon2"
    android:label="@string/app_name"
    android:theme="@style/Theme.AppCompat.Light.NoActionBar"
    >
    <activity
        android:name="com.project.project.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.project.project.StActivity"
        android:configChanges="orientation|screenSize|keyboardHidden"
        android:label="@string/app_name">
        <intent-filter >
            <action android:name="android.intent.action.DEFAULT" />

            <category android:name="android.intent.category.LAUNCHER" />

        </intent-filter>
    </activity>



</application>

我该怎么办 感谢您的帮助

【问题讨论】:

    标签: android android-actionbar android-alertdialog android-theme


    【解决方案1】:

    如果不查看实际创建 Dialog 的代码,很难判断,但我猜你是:

    1. 创建Dialog 时,不使用Activity 作为ContextActivity 上下文包含主题;如果您尝试使用 Application,它将无法获得正确的主题。
    2. Dialog 主题设置为不继承自Theme.AppCompat 的主题(使用构造函数setStyle()ContextThemeWrapper)。

    无论哪种方式,Dialog 都无法获得Theme.AppCompat 提供的所需属性。

    【讨论】:

    • 我已经解决了将上下文对象更改为 Activity 上下文的问题,谢谢 =)
    猜你喜欢
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-25
    • 1970-01-01
    • 1970-01-01
    • 2018-10-20
    • 2016-03-29
    相关资源
    最近更新 更多