AppBar 颜色和选项卡式菜单
Posted
技术标签:
【中文标题】AppBar 颜色和选项卡式菜单【英文标题】:AppBar color and tabbed menu 【发布时间】:2015-09-18 11:56:49 【问题描述】:我无法从以前的任何问题/答案中获得帮助,现在已经尝试了很多次。所以问题是我似乎无法正确更改导航选项卡(选项卡式视图)的颜色。我正在使用支持 repos 的 API 21。
如果我使用
ColorDrawable cd = new ColorDrawable(getResources().getColor(R.color.appbar));
actionBar.setBackgroundDrawable(cd);
它只着色appbar-part,它是整个顶部菜单栏的顶部。
如果我使用
actionBar.setStackedBackgroundDrawable(cd);
它确实为标签部分着色,但同时它将顶部部分的背景更改为浅灰色,无论我是否也调用
actionBar.setBackgroundDrawable(cd);
或者不。所以下面是一张解释这两种情况的图片,底部是一张我想要的图片。谢谢!
图片链接:https://onedrive.live.com/redir?resid=E71EFAAF41D1B253!9581&authkey=!AIj2vWVJIKIfVUo&v=3&ithint=photo%2cpng
【问题讨论】:
【参考方案1】:在名为values-v21
的“res”中创建一个新文件夹,其中包含styles.xml 文件。
<resources>
<!-- inherit from the material theme -->
<style name="AppTheme" parent="android:Theme.Material.Light.NoActionBar">
<!-- Main theme colors -->
<!-- your app branding color for the app bar -->
<item name="android:colorPrimary">@color/primary</item>
<!-- darker variant for the status bar and contextual app bars -->
<item name="android:colorPrimaryDark">@color/primary_dark</item>
<!-- theme UI controls like checkboxes and text fields -->
<item name="android:colorAccent">@color/accent</item>
<item name="android:alertDialogTheme">@style/Theme.AlertDialog</item>
<item name="android:navigationBarColor">@color/primary</item>
</style>
<style name="Theme.AlertDialog" parent="Theme.AppCompat.Light.Dialog">
<!--app abar color in Activties Task manager -->
<item name="colorPrimary">@color/primary</item>
<!--copy/paste colors -->
<item name="colorAccent">@color/primary</item>
<!--status bar color -->
<item name="colorPrimaryDark">@color/primary</item>
</style>
</resources>
PrimaryDark 用于 TitleBar Primary 用于操作栏
【讨论】:
如果我不使用 AppCompat 主题,应用程序将会崩溃。此外,如果我使用 .NoActionBar 它会在进入选项卡式视图时崩溃。所以我使用 Theme.AppCompat.Light 作为父级并且它运行。导航和状态栏的颜色确实发生了变化,但选项卡仍然保持浅灰色:\ 你试过这个 不起作用:\我想知道如果我不使用 actionBar.setBackgroundDrawable,为什么根本不为 appbar 应用颜色...活动正在使用 AppTheme 和 API 21。这个令人沮丧。以上是关于AppBar 颜色和选项卡式菜单的主要内容,如果未能解决你的问题,请参考以下文章