-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"));

私のアクティビティには 2 つのタブがあります。このコードは、最初のタブの色を「赤」に固定したままにしますが、クリックしたときに 2 番目のタブを「赤」に変更しません。コードでどのような変更を行う必要がありますか?

4

2 に答える 2

2

あなたのタブアクティビティクラスでこのコードを試してください..あなたに役立つかもしれません...

    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 に答える