我遇到了以下问题:我正在尝试实现像instagram这样的应用程序设计,其中大多数应用程序都使用轻量级主题。但是,我还没有找到一种为工具栏文本和图标元素着色的方法,如导航抽屉和后退按钮黑色。
使用以下style.xml时
<resources>
<!-- Base application theme. -->
<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">#FAFAFA</item>
<item name="colorPrimaryDark">#BDBDBD</item>
<item name="colorAccent">#FF4081</item>
</style>
<style name="AppTheme" parent="AppTheme.Base"></style>
<style name="ToolbarTheme" parent="ThemeOverlay.AppCompat.ActionBar">
<!-- Used to for the title of the Toolbar -->
<item name="android:textColorPrimary">@color/black</item>
<!-- Used to for the title of the Toolbar when parent is Theme.AppCompat.Light -->
<item name="android:textColorPrimaryInverse">@color/black</item>
<!-- Used to color the text of the action menu icons -->
<item name="android:textColorSecondary">@color/black</item>
<!-- Used to color the overflow menu icon -->
<item name="actionMenuTextColor">@color/black</item>
</style>
</resources>
和工具栏的这个属性:
android:theme="@style/ToolbarTheme"
它产生以下设计:
如您所见,导航抽屉为白色,标签标题也为白色。
我也尝试过这种方式可以正常工作,但前提是你没有在活动中明确设置工具栏,如下所示:
活动代码:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
Style.xml:
<!-- Base application theme. -->
<style name="AppTheme.Base" parent="Theme.AppCompat.Light">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
当使用没有明确工具栏的这种风格时,设计看起来像我想要的,但是,我无法以这种方式调用工具栏。如果使用Theme.AppCompat.Light设置工具栏,则会抛出错误。
另请注意两种样式之间的区别:Theme.AppCompat.Light vs Theme.AppCompat.Light.NoActionBar
关于如何做到这一点的任何想法?