2012-04-11 1 views
5

アイスクリームサンドイッチアプリでTabHost/TabWidgetの償却ライブラリを使用しています。私はActionBarSherlockに慣れ親しむ時間がないので、私が知っている唯一の方法でアプリケーションに入っていなければならなかった。アイスクリームサンドイッチでTabWidgetのスタイルを設定するにはどうすればよいですか?

TabWidgetとTabオブジェクトのスタイリングについて、選択したタブの色を背景色とイメージに変更する方法について知りたいですか?標準的なスタイリングとテーマ設定を使用しても動作しないようです。

答えて

8

廃止されたライブラリは、常にそうであるように動作すると仮定すると、これは私がタブの色を付けるために使用した手順です。次のようにXMLで直接使うアクセスできなかったとして、私は、コード内の背景を設定します。

TabWidget tabs = (TabWidget)getTabWidget();    
     for (int i = 0; i<tabs.getChildCount(); i++) { 
      RelativeLayout tab = (RelativeLayout) tabs.getChildAt(i); 
      tab.setBackgroundDrawable(this.getResources().getDrawable(R.drawable.tabindicator)); 

次のようにtabindicatorの描画可能である:

<?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" /> 
<item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected" /> 
<!-- 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_selected="true" android:state_pressed="true" android:drawable="@drawable/tab_press" /> 
<item android:state_pressed="true" android:drawable="@drawable/tab_press" /> 
</selector> 

ドロワブルが持つわずか9・パッチ画像ましたあなたは標準的な色を使用して同様の効果を得ることができるかもしれませんが、色。

+0

これは多かれ少なかれ、ありがとうございました。 tabHost.getTabWidget()を呼び出すことによってTabWidgetを取得しなければならなかったが、そこから残りの部分が落ちた。親切にStev_kに感謝します。 –

+0

これは、サポートlibに 'FragmentTabHost'が導入された後に再び使用されます。さらに、タブの子ビューは 'RelativeLayout'ではなく' FragmentTabHost'の 'LinearLayout'です。 –

関連する問題