【问题标题】:How to change selection color of tab host如何更改选项卡主机的选择颜色
【发布时间】:2014-04-21 09:59:43
【问题描述】:

我想在我的应用中更改选项卡小部件的选择颜色。我检查了许多答案和链接,但只能更改整个标签的颜色。

以下是我想要的:

我只想用绿色更改默认的蓝色选择颜色。而不是整个标签的颜色。我应该怎么做才能做到这一点?

编辑: 按照我创建标签的方式。

    mTabHost.addTab(mTabHost.newTabSpec("Contacts").setIndicator("Contacts"), ContactFragment.class, null);
    mTabHost.addTab(mTabHost.newTabSpec("Favorite").setIndicator("Favorite"), FavoriteFragment.class, null);
    mTabHost.addTab(mTabHost.newTabSpec("Group").setIndicator("Group"), GroupFragment.class, null);

【问题讨论】:

  • 可以使用onTabChanged方法
  • 是的,但是在那个方法中该怎么做呢?这就是我不清楚的地方。
  • 如果当前选项卡被选中,则更改该小部件的背景颜色
  • @I-droid:你需要处理 9patch 背景可绘制而不是颜色。
  • @MehulJoisar :我准备好使用它们了。但是如何?我不知道如何使用这些图像。我必须对这些图像使用自定义可绘制对象吗?如果是,它的项目应该是什么?

标签: android tabs android-widget


【解决方案1】:

举个例子,你可以看看android-sdk的资源,

假设,

去:

android-sdk-windows\platforms\android-19\data\res\drawable and look at file 

tab_bottom_right.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/tab_press_bar_right"/>
<item android:state_focused="false" android:drawable="@drawable/tab_selected_bar_right"/>
<item android:state_focused="true" android:drawable="@drawable/tab_focus_bar_right"/>

您可以在不同的文件夹中找到相关的 9 个补丁绘图。(hdpi、mdpi、xhdpi 等) 假设,转到:

android-sdk-windows\platforms\android-19\data\res\drawable-hdpi

并寻找名为tab_press_bar_right.9.png的drawable

编辑:

看看下面的帖子:set selector drawable to tab

【讨论】:

  • 感谢您的参考,我明白了。我在我的项目中使用了tab_indicator_holo.xml 和绿色 9 补丁图像。但是在哪里指定这个drawable?我正在使用FragmentTabHost
  • @I-droid:发布一些代码以便我指导。您只需在您的drawable 目录中添加tab_indicator_holo.xml 并将其设置为每个选项卡的背景。
  • @I-droid:我添加了示例帖子的参考。
  • @MehulJosiar:你能解释一下set it as background of each tab吗?我的意思是,如何做到这一点?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-25
  • 1970-01-01
相关资源
最近更新 更多