Android TabWidget设置背景颜色错误

时间:2010-11-18 22:02:05

标签: android views styles tabwidget

我一直在尝试将样式应用到我的TabWidget。

我尝试了几种方法,例如

  

for(int i = 0; i&lt; tabHost.getTabWidget()。getChildCount(); i ++)tabHost.getTabWidget()。getChildAt(i).setBackgroundColor(Color.parseColor(“#7392B5”)); < / p>

How do I change the background of an Android tab widget?

但是,此代码对我不起作用。我也试过搞乱一些XML样式。我得到的最接近的是设置分割器,但是这会使整个标签小部件变为一种纯色,并且不再在顶部绘制标签。

请帮忙。 Mark的书籍仅涉及设置选项卡的图标,而不是更改颜色。我觉得这应该很简单,但TabWidgets和Hosts使一切变得更加困难。

我已经尝试过针对1.6和2.2平台的代码,但两种API都无法正常工作。

由于

1 个答案:

答案 0 :(得分:1)

标签的背景实际上是NinePatch图片,设置为StateListDrawable。当您调用setBackgroundColor()时,您将使用简单的颜色替换设置的StateListDrawable,因此整个选项卡将变为该颜色。您需要做的是实际修改(或绘制自己的)NinePatch选项卡图像,这些图像是每种状态所需的颜色和样式(例如聚焦,按下等)。

或者,在代码中你可以按照here设置ColorFilter(getBackground()适用于TabWidget和按钮)但我建议亲自去看NinePatch路线。