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 颜色和选项卡式菜单的主要内容,如果未能解决你的问题,请参考以下文章

Layui(三):导航菜单、选项卡、进度条和面板

更改选项卡式视图 SwiftUI 的凹槽区域背景颜色

在 Scroll Flutter 上隐藏 Appbar?

如何在 Flutter 中为未选择的选项卡添加下划线?

如何在选项卡式布局中显示 Android gridview

如何在 XAML 中居中​​选项卡式页面选项卡图标和/或文本?