4

アクション バーにカスタム スタイルのタブを実装するのに苦労しています。通常の状態と選択された状態の両方で、タブ (つまりボタン) でカスタム グラフィックを使用する必要があります。

を使用して、すべてのネイティブ スタイリングを強制終了できました。

<style name="customActionBarTabStyle">
    <item name="android:background">#00000000</item>
</style>

次に、Tab.setIcon() を使用してタブを必要な外観にしますが、切り替えに反応する必要があります (2 つの Drawables を切り替えてオンとオフの状態にする)。

次のような Drawable セレクターを作成してみました。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
          android:drawable="@drawable/btn_on" />
    <item android:drawable="@drawable/btn_off" />
</selector>

ただし、タブを選択しても、タブは押されたモードに切り替わりません。

また、TabListener.onTabSelected() および .onTabUnselected() で Tab.setIcon() を呼び出してみましたが、運もありません。

誰かがこれに対する良い解決策を知っていますか?

また、オーバーフロー メニューの代わりにカスタム ビューを表示する必要があります。「Android のやり方に従う」ように UI を再考するために、すでにたくさんの「ヒント」をグーグル検索しましたが、問題は、UI が実際に再考する必要がないことです。それは顧客のものです:)だから、ActionBarのカスタマイズの欠点を回避する方法を見つけたいと思っています。

事前に感謝します。

4

4 に答える 4

1

ここで同様のことをしようとするだけで(タブの背景画像を完全に変更する)、state_pressedの代わりにstate_selectedを使用してみてください。アクションバーのタブは選択されたtrue / falseのみに入り、押された状態にはなりません...

編集:背景プロパティがその状態に入るように見えますが、タブで使用されるテキストの色ではありません...

于 2011-06-24T11:02:40.947 に答える
0

ソリューションをより存在感のあるものにするために:

@ tafandroid:duplicateParentState="true"は解決策を述べました。タブのカスタム ビューとして使用する親レイアウトでを設定する必要があります。

于 2012-08-15T15:52:51.963 に答える
0

android:selectableItemBackgroundを使用する必要があると思いますが、これ を見てください。

幸運を

于 2012-02-22T14:09:31.093 に答える