TabWidget tw = getTabWidget();
for (int i = 0; i < tw.getChildCount(); i++) {
View v = tw.getChildAt(i);
v.setBackgroundColor(Color.parseColor("#666666"));
}
tw.getChildAt(0).setBackgroundColor(Color.parseColor("#B21206"));
我的活动中有两个标签。此代码将第一个选项卡的颜色固定为“RED”,但在单击时不会使第二个选项卡更改为“RED”。 应该在代码中做些什么改变?
答案 0 :(得分:2)
在您的tabactivity类中尝试此代码..它可能对您有帮助...
for(int i = 0; i < getTabWidget().getChildCount(); i++)
{
if(getTabWidget().getChildAt(i).isSelected())
{
//selected tab
getTabWidget().getChildAt(i).setBackgroundColor(Color.RED);
}
else
{
//un-selected tabs
getTabWidget().getChildAt(i).setBackgroundColor(Color.GREEN);
}
}
答案 1 :(得分:1)
使用xml bg选择器完成您的任务,这是更好的方式。
如果您想在代码中尝试此代码
在settabColor(yourtabhost)中传递标签主机;
public static void setTabColor(TabHost tabhost) {
for(int i=0;i<tabhost.getTabWidget().getChildCount();i++)
{
tabhost.getTabWidget().getChildAt(i).setBackgroundColor(Color.parseColor("#FF0000")); //unselected
}
tabhost.getTabWidget().getChildAt(tabhost.getCurrentTab()).setBackgroundColor(Color.parseColor("#0000FF")); // selected
}