目的
Activity遷移時に
This Activity already has an action bar supplied by the window decor.
Do not request Window.FEATURE_SUPPORT_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead.
とエラーがコンソールに表示され、アプリがクラッシュする。
環境
- Android Studio 4.0.1
- Kotlin 1.3.50
対応メモ
遷移元と遷移先でthemeの設定などが違うと表示される。
上のエラーはaction barの設定が異なると表示されるようです。
対応策としては2つあり、
- 遷移先Activityでも、遷移元と同じthemeを設定する。
- デフォルト使用のthemeに遷移元と同じ設定を追加する。
となり。以下より詳しく書いていく。
移先Activityでも、遷移元と同じthemeを設定する。
AndroidManifestで 遷移元が以下のようになっている場合、
<activity
android:name=".MainActivity"
...
android:theme="@style/AppTheme.NoActionBar"
...
</activity>
遷移先のActivityにも
android:theme="@style/AppTheme.NoActionBar"
を追加して合わせる。
### デフォルト使用のthemeに遷移元と同じ設定を追加する。
`/main/res/value/style.xml`ファイルにて
以下のようになっていて、
遷移元は*<style name="AppTheme.NoActionBar">*を参照。
遷移先は特に参照していない場合。
遷移先はデフォルトの*name="AppTheme"*が使われるよう。
なので、そこに
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
の値を追記する必要がある。
上記どちらかを対応すれば、遷移時にエラーが表示されることなく、うまく機能した。