将主题更改为“NoActionBar”后应用程序崩溃

Sin*_*ara 6 android android-layout android-fragments

嗨,我必须将我的应用程序主题更改为“Theme.AppCompat.Light.NoActionBar”。但是在我更改它之后,应用程序崩溃了。我找不到问题出在哪里:/

我的目标是在工具栏上扩展我的导航抽屉。但为此,我需要“NoActionBar”功能。我希望有人可以帮助我。感谢转发!

那是调试器的错误代码:

12-23 11:04:28.292 1410-1421/? E/ANDR-PERF-LOCK: Failed to apply optimization for resource: 4 level: 0
Run Code Online (Sandbox Code Playgroud)

那是我的styles.xml 代码:

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

        <item name="android:listDivider">@android:color/transparent</item>
    </style>

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

    <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />

    <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />

</resources>
Run Code Online (Sandbox Code Playgroud)

Abu*_*lim 3

专注于你的风格

  <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
Run Code Online (Sandbox Code Playgroud)

这个主题Theme.AppCompat.Light.NoActionBar意味着你告诉android不要采用默认主题ActionBar

稍后你会打电话ActionBar 给你MainAcitvity,这就是你崩溃的原因。

相反,使用Toolbar并设置为ActionBar

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);

setSupportActionBar(toolbar);

getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
Run Code Online (Sandbox Code Playgroud)

另外我认为您正在使用 lolipop 所以将其添加到您的 styles.xml 中:

<style name="AppTheme.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
</style>
Run Code Online (Sandbox Code Playgroud)

在你的清单中:

<activity android:name=".activity.YourActivity"
          android:theme="@style/AppTheme.NoActionBar"><!-- ADD THIS LINE -->
Run Code Online (Sandbox Code Playgroud)