【问题标题】:Android ActionBar Tab ColorAndroid ActionBar 选项卡颜色
【发布时间】:2011-09-28 14:40:09
【问题描述】:

我已将 ActionBar 选项卡添加到我的应用程序中。该下划线的默认颜色是浅蓝色。如何更改所选标签的颜色或样式?

【问题讨论】:

    标签: android


    【解决方案1】:

    如果有人想在代码中更改操作栏颜色/背景,您可以这样做

    final ActionBar actionBar = getActionBar();
    actionBar.setBackgroundDrawable(getResources().getDrawable(R.drawable.action_bar_bg));
    

    更改操作栏下的标签栏颜色:

    actionBar.setStackedBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.color_brown_dark)));
    

    改变标签栏背景:

    actionBar.setStackedBackgroundDrawable(getResources().getDrawable(
                R.drawable.coupon_header));
    

    【讨论】:

    • 这是动态设置选项卡背景颜色的方式。这个答案值得更多的支持......
    • 我建议您通过 xml styleattributes 设置操作栏的样式,如第一个答案中所述。这是因为 android 会在 Activity 启动之前完成所有烦人/昂贵的工作,例如加载可绘制对象和颜色
    • 我认为用户必须等待的总时间仍然相同,而不取决于加载绘图的顺序。如果您需要在运行时更改颜色/图像,则仅在代码中使用/更灵活
    • 这些答案都没有真正回答这个问题。 OP 已询问如何更改操作栏选项卡的下划线颜色。第一个代码示例更改显示在选项卡上方的操作栏背景颜色。第二个和第三个示例都调用了相同的方法来更改整个选项卡的背景颜色。这些方法都没有真正改变浅蓝色标签下划线。
    • 如何设置按下按钮、图标/徽标时的高亮颜色?谢谢
    【解决方案2】:

    这可能会提供一些线索Action Bar Style Gen

    【讨论】:

    • 这很棒,节省了很多时间。强烈建议先使用这个
    【解决方案3】:

    selectableItemBackground 是我认为您正在寻找的属性。 我建议你阅读这篇关于Customizing the Action Bar 的文章,以及查看this question on SOthis one

    在代码中,我似乎无法找到自定义所选单个项目的方法,但是自定义栏本身看起来像这样。

    ActionBar bar = getActionBar();
    bar.setBackgroundDrawable(new ColorDrawable("FF0000"));
    

    【讨论】:

    • 我在 java 中创建 ActionBar。 ActionBar bar = getActionBar();那么我该如何设置样式呢?
    • 感谢您的帮助,但我只需要在选项卡上设置差异颜色。
    • 我不确定这是否可以在代码中完成。如果您的要求仅在代码中,您可能应该在问题中指定。
    • 这是改变操作栏背景颜色的方法。如果我需要以编程方式更改操作栏标签的背景颜色,我该如何更改?因为在纵向模式下,操作栏处于拆分模式,即带有徽标和标签的操作栏标题。
    【解决方案4】:
    ActionBar bar = getActionBar();
    
    bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    
    // set background for action bar
    bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#0c2354")));
    
    // set background for action bar tab
    bar.setStackedBackgroundDrawable(new ColorDrawable(Color.parseColor("#B5C0D0")));       
    
    bar.show();
    

    【讨论】:

      【解决方案5】:

      这是一个更简单的方法:

      我已经为此苦苦挣扎了好几天,但终于找到了解决方案。我正在使用 AppCompat。您可以在您的主题中设置colorAccent,这将改变您的ActionBar 上的突出显示颜色。像这样:

      <item name="colorAccent">@color/highlightcolor</item>
      

      这里是上下文:

      <style name="LightTheme" parent="Theme.AppCompat.Light.DarkActionBar">
          <item name="colorPrimary">@color/darkgrey</item>
          <item name="colorPrimaryDark">@color/black</item>
          <item name="colorAccent">@color/highlightcolor</item>
      </style>
      

      我最初发布此答案的位置:Android Tab underline color not changing

      【讨论】:

      • 我这几天一直在寻找这个,但找不到任何精确的解决方案。谢谢你的回答,真的很有帮助。
      【解决方案6】:

      1)Generate the Action Bar Style,点击下载ZIP获取文件

      2) 当您解压在步骤 1 中创建的 zip 文件时,您将获得一个 res 文件夹。将此文件夹添加到您的项目中的平台/android 下。

      3) 修改 manifest.xml 以使用新的操作栏样式,其中“Action”是您在步骤 1 中设置的样式的名称。

      <android xmlns:android="http://schemas.android.com/apk/res/android">      
      <tool-api-level>14</tool-api-level>
      <manifest>
          <application android:theme="@style/Theme.Action"/>
          <uses-sdk android:minSdkVersion="14"
              android:targetSdkVersion="16"/>
      </manifest>
      </android>
      

      This手册帮助了我,我希望它也能帮助你。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多