0

こんにちは、タブ ウィジェットの色を変更しようとしていますが、アプリを実行しても変更されません。

選択されていない場合と選択されている場合の両方のタブホストの色を変更しようとする私のコードをここに示します

public static void setTabColor(TabHost tabhost) {
        for(int i=0;i<tabhost.getTabWidget().getChildCount();i++)
        {
            tabhost.getTabWidget().getChildAt(i).setBackgroundColor(Color.parseColor("#666666")); //unselected
        }
        tabhost.getTabWidget().getChildAt(tabhost.getCurrentTab()).setBackgroundColor(Color.parseColor("#FFFFFF")); // selected
    }



    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tablayout);
            checkInternet();
            checkPreferences();

        TabHost tabHost = getTabHost();
//        setTabColor(tabHost);


        // Tab for Photos
        TabSpec resultsspec = tabHost.newTabSpec("Results");
        // setting Title and Icon for the Tab
        resultsspec.setIndicator("Results", getResources().getDrawable(R.drawable.miresults_tab));
        Intent photosIntent = new Intent(this, MIResults.class);
        resultsspec.setContent(photosIntent);
//        setTabColor(tabHost);



        // Tab for Songs
        TabSpec Fixturesspec = tabHost.newTabSpec("Fixtures");
        Fixturesspec.setIndicator("Fixtures", getResources().getDrawable(R.drawable.mifixtures_tab));
        Intent songsIntent = new Intent(this, MIFixtures.class);
        Fixturesspec.setContent(songsIntent);

        TabSpec tablespec = tabHost.newTabSpec("Table");
        tablespec.setIndicator("Table", getResources().getDrawable(R.drawable.mitable_tab));
        Intent videosIntent = new Intent(this, MITable.class);
        tablespec.setContent(videosIntent);

        // Adding all TabSpec to TabHost
        tabHost.addTab(resultsspec); 
        tabHost.addTab(Fixturesspec);
        tabHost.addTab(tablespec); 
    }
4

1 に答える 1

1

次のようなドローアブル セレクタを作成する必要があります。

mytab.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- Non focused states -->
    <item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_unselected_v4" />
    <item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected_v4" />

    <!-- Focused states -->
    <item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_focus" />
    <item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_focus" />

    <!-- Pressed -->
    <item android:state_pressed="true" android:drawable="@drawable/tab_press" />
</selector>

タブの各状態を処理します。tab_focus などの各ドローアブルは、9 パッチの png です。

また、ドローアブル リソースを参照するには、タブ レイアウトをオーバーライドする必要があります。Androidのデフォルトを参照する親を持つスタイルを使用してから、背景プロパティをオーバーライドして「drawable/mytab」を参照します。

于 2012-07-13T16:24:54.920 に答える