我正在创建一个Android应用程序,其中我正在使用Material Design组件。我使用过Material design theme(android:Theme.Material),通过使用android:Theme.Material扩展我的风格。
<style name="MyMaterialTheme.Base" parent="android:Theme.Material.Light">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:navigationBarColor">@color/navigationBarColor</item>
<item name="android:displayOptions">disableHome</item>
</style>
现在,问题是我也想使用工具栏,但是由于我遵循了许多教程,如果我想使用工具栏,我需要将Theme.AppCompat作为我的父主题。
我尝试使用材料设计主题,但将错误抛给我
java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity
所以,我的问题是,我不能将材料设计主题与工具栏一起使用(因为我也使用卡片视图,所以材料设计主题更可取)?
注:-I使用AppCompact主题集成了工具栏,但我只想使用材料设计主题。
将父级设置为"@android:style/Theme.Material.Light.NoActionBar",并在活动中使用 AppCompatActivity。
你得到
java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity
因为您的Activity
从AppCompatActivity
延伸而来,并且必须使用活动主题必须具有 Theme.AppCompat 或后代。
您可以在活动中使用Toolbar
,而无需像这篇文章所引用的那样扩展AppCompatActivity
。但是你仍然需要一个Theme.AppCompat
后代。
顺便说一句。为什么需要特别android:Theme.Material
?
您需要更新清单中的主题。
编辑主题条目,使其如下所示:
android:theme="@style/Theme.AppCompat"