This Activity already has an action bar supplied b

2082 ワード

質問説明:AppCompatActivityから引き継ぎ、ActionBarの代わりにToolbarを使用した場合、エラー
エラーメッセージ:
  • 2.Caused by: java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead.

  • 問題原因説明:ActivityにActionBarが既に存在するため、Toolbarで置換中にエラーが発生しました
    解決策:ActionBarを取り除く方法を考える
    ソリューション
  • 1.Themeを使用してActionBarを削除します.使用するAppCompat.Light.だが...AppCompat.NoActionBarトピックでは、ActionBarを削除してこの問題を解決できます.コードは次の
  • です.
    <resources>
        <style name="AppTheme" parent="AppTheme.Base">
        </style>
        <style name="AppTheme.Base" parent="Theme.AppCompat.NoActionBar">
            <item name="colorPrimary">@color/accent_material_light</item>
            <item name="colorPrimaryDark">@color/accent_material_light</item>
            <item name="android:windowBackground">@color/dark</item>
        </style>
    </resources>
  • 2.以上のシナリオが使用できない場合は、Themeのプロパティを設定してこの問題を解決します.

  • プロジェクト内のすべてのvalues-xxフォルダのstyles.xmlに次のコードを追加し、ActionBarを削除します.
    <item name="windowActionBar">false</item>
        <item name="android:windowActionBar">false</item>
        <item name="android:windowNoTitle">true</item>
        <item name="windowNoTitle">true</item>

    これらの属性はバージョンに対する要求が異なるため、ある属性がAppバージョンで認識できない場合は、削除して他のものを保持すればよいことに注意してください.