单击时如何更改选项卡的颜色?

时间:2012-05-18 12:16:13

标签: android android-animation android-tabhost

  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”。 应该在代码中做些什么改变?

2 个答案:

答案 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
}