我一直在尝试将样式应用到我的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都无法正常工作。
由于
答案 0 :(得分:1)
标签的背景实际上是NinePatch图片,设置为StateListDrawable。当您调用setBackgroundColor()
时,您将使用简单的颜色替换设置的StateListDrawable,因此整个选项卡将变为该颜色。您需要做的是实际修改(或绘制自己的)NinePatch选项卡图像,这些图像是每种状态所需的颜色和样式(例如聚焦,按下等)。
或者,在代码中你可以按照here设置ColorFilter(getBackground()
适用于TabWidget和按钮)但我建议亲自去看NinePatch路线。