如何使用android:Theme.Material and Toolbar



我正在创建一个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

因为您的ActivityAppCompatActivity延伸而来,并且必须使用活动主题必须具有 Theme.AppCompat 或后代。

您可以在活动中使用Toolbar,而无需像这篇文章所引用的那样扩展AppCompatActivity。但是你仍然需要一个Theme.AppCompat后代。

顺便说一句。为什么需要特别android:Theme.Material

您需要更新清单中的主题。

编辑主题条目,使其如下所示:

android:theme="@style/Theme.AppCompat"

相关内容

  • 没有找到相关文章