0

タブ ラベルに個別の色を設定するにはどうすればよいですか? 背景色を変えると全体の色が変わります。

私のコード

<TabHost android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@android:id/tabhost"
xmlns:android="http://schemas.android.com/apk/res/android">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TabWidget
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@android:id/tabs"
android:layout_alignParentBottom="true"/>

 <FrameLayout
 android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@android:id/tabcontent">

 </FrameLayout>
 </RelativeLayout>
</TabHost>

ここに画像の説明を入力

4

2 に答える 2

1

これに従うことで、そのようなことができます

String TAG_AddData="TAB LABEL";
        /*add Tab in Tabgroup*/
        TabHost host = getTabHost();
                host.addTab(host
                        .newTabSpec(TAG_AddData)
                        .setIndicator(TAG_AddData,
                                getResources().getDrawable(R.drawable.tab_add))
                        .setContent(
                                new Intent(this, AddData_ActivityGroups.class)
                                        .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)));

/* これで、すべてのタブをループしてそのラベルのプロパティを変更できます*/

    for (int i = 0; i < host.getTabWidget().getChildCount(); i++) {

    TextView tv = (TextView) host.getTabWidget().getChildAt(i)
                        .findViewById(android.R.id.title);
    tv.setTextColor(Color.parseColor("#ffffff"));
    }

    TextView tv = (TextView) host.getCurrentTabView().findViewById(
    android.R.id.title); // for Selected Tab
    tv.setTextColor(Color.parseColor("#000000"));

また、tabGroup のonTabChangedメソッドにも同じことが適用できます。

于 2013-01-09T05:12:46.723 に答える
1

res/drawable/tabselector.xml

<selector
android:id="@+id/myselector"
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/darklogo" />
<item
    android:state_focused="false"
    android:state_selected="true"
    android:state_pressed="false"
    android:drawable="@drawable/lightlogo" />

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

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

ここに含めた XML は、case ステートメントを埋め込むことができるドローアブルを定義する方法です。割り当てられているビューの状態に応じて、異なるドローアブルを提示します。res/drawableドローアブルとして、プロジェクトのフォルダー内に xml ファイルとして保存する必要があります (例: tabselector.xml)。

Tabhost に使用するには、通常どおりに TabActivity を作成する必要があります (このチュートリアルの例に示すように)。

次に、各タブをホストに追加するときに、tabselector以下の「TAB 1」に示すように、ドローアブルをインジケーターとして指定します。

Drawable mySelector = getResources().getDrawable(R.drawable.tabselector);

mTabHost.addTab(mTabHost.newTabSpec("tab_test1").setIndicator("TAB 1", mySelector).setContent(R.id.textview1));
mTabHost.addTab(mTabHost.newTabSpec("tab_test2").setIndicator("TAB 2").setContent(R.id.textview2));
于 2013-01-09T05:21:08.773 に答える