-1
  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”。应该对代码进行哪些更改?

4

2 回答 2

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);
        }
    }
于 2012-05-18T12:30:13.710 回答
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
}
于 2012-05-18T12:18:47.220 回答