0

5 つのタブがあり、各タブが独自の特定のフラグメントをロードするアプリケーションを構築しようとしています。フラグメントを切り替えるときにタブ アイコンを変更する方法を探しています。

フラグメントクラス内の画像を変更して設定しようとしましたが、他のタブをクリックしてもそのままで、「アクティブでない画像アイコン」に戻りません

アクションバーを使用せず、ViewPager も使用しない場合、これらの 5 つのタブはクリック可能な ImageView であり、TabHost ではありません。

ご協力いただきありがとうございます。

4

2 に答える 2

0

フラグメントからタブ アイコンを設定するのは非常に悪い考えです。アクティビティからアイコンを設定する必要があります (たとえば、onCreate メソッド)。おそらく、各タブアイコン(選択されたアイコンとデフォルトのアイコン)のセレクターを作成する必要があります

タブごとに 1 つのファイルを作成します。たとえば、ic_tabs_first.xml です。ic_tabs_first_default.png と ic_tabs_first_selected.png の 2 つのアイコンがあります。ic_tabs_first.xml は次のようになります。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
     <item android:state_pressed="true"
          android:drawable="@drawable/ic_tabs_first_selected" /> <!-- pressed -->
     <item android:state_selected="true"
          android:drawable="@drawable/ic_tabs_first_selected" /> <!-- selected -->
     <item android:drawable="@drawable/ic_tabs_first_default" /> <!-- default -->
</selector>
于 2013-10-02T17:57:27.243 に答える
0

ActionBarタブにを使用していると仮定しています。そうでない場合は、この例を参照してください。

ActionBar.Tab.setIcon()タブのアイコンを設定するために使用できます。

于 2013-10-02T16:43:28.860 に答える