AppCompat не поддерживает текущие функции темы - ничего не работает
Я пытаюсь использовать MaterialDesign в своем проекте, но постоянно получаю эту ошибку:
Caused by: java.lang.IllegalArgumentException: AppCompat does not support the current theme features: { windowActionBar: false, windowActionBarOverlay: false, android:windowIsFloating: false, windowActionModeOverlay: false, windowNoTitle: false }
at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:371)
at android.support.v7.app.AppCompatDelegateImplV7.initWindowDecorActionBar(AppCompatDelegateImplV7.java:173)
at android.support.v7.app.AppCompatDelegateImplBase.getSupportActionBar(AppCompatDelegateImplBase.java:87)
at android.support.v7.app.AppCompatDelegateImplV7.setSupportActionBar(AppCompatDelegateImplV7.java:197)
at android.support.v7.app.AppCompatActivity.setSupportActionBar(AppCompatActivity.java:99)
at de.memorian.playpal.MainActivity.afterInject(MainActivity.java:72)
Я сталкивался с подобными проблемами, но каждый раз получаю одну и ту же ошибку.
MainActivity.java:
@EActivity(R.layout.activity_main)
public class MainActivity extends AppCompatActivity {
@ViewById
protected Toolbar toolbar;
@AfterInject
public void afterInject() {
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowHomeEnabled(true);
}
}
styles.xml:
<style name="AppTheme" parent="AppTheme.Base"/>
<style name="AppTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
стили-v21.xml:
style name="AppTheme" parent="AppTheme.Base">
<!-- enable window content transitions -->
<item name="android:windowContentTransitions">true</item>
<item name="android:windowAllowEnterTransitionOverlap">true</item>
<item name="android:windowAllowReturnTransitionOverlap">true</item>
<!-- specify shared element transitions -->
<item name="android:windowSharedElementEnterTransition">@android:transition/move</item>
<item name="android:windowSharedElementExitTransition">@android:transition/move</item>
</style>
Я пытался установить родительскую тему для любого происхождения.NoActionBar, но все же. Я также попытался удалить весь код из AndroidAnnotations и сделать это обычным способом с setContentView
а также findViewById(R.id.toolbar)
, Единственное, что меня беспокоит, это то, что я установил windowNoTitle
в true
но в журнале говорится, что это false
,
Любая помощь?
7 ответов
Для тех, у кого возникла эта проблема, я только что обнаружил проблему: очевидно, существует еще одна тема с именем "AppTheme". Я не знаю почему и как, но изменение названия моей темы решило проблему.
Это был ответ на мою проблему.
Изменить:
<item name="android:windowNoTitle">true</item>
чтобы:
<item name="windowNoTitle">true</item>
Добавьте их в Activity MainActivity в свой файл AndroidManifest.xml
как это
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/Theme.AppCompat.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
При переходе на Material3 я столкнулся с той же проблемой. Что вам нужно сделать, так это расширить тему NoActionBar .
Этот:
<style name="Theme.AppDefault" parent="@style/Theme.Material3.DayNight">
Должен быть изменен на:
<style name="Theme.AppDefault" parent="@style/Theme.Material3.DayNight.NoActionBar">
У меня такая же проблема, и просто перестройка моего проекта решила проблему. Надеюсь, это может помочь кому-то.
В файле theme.xml был установлен
<item name="windowNoTitle">false</item>
к ложному. поменял на истину.
<item name="windowNoTitle">true</item>
сделать это, если вы сделали это.
Скопируйте этот код в свой основной стиль:
<style name="Theme.MyTheme" parent="Theme.AppCompat.NoActionBar">