1

Jake Wharton の素晴らしい ViewPagerIndicator ライブラリを使用するアプリにカスタム テーマを適用しています。残念ながら、このテーマでは、最初と最後のタブ インジケーターの外側の端を丸くする必要があります。

次のようになります。

そう見えるはず

以下(簡略化)のような特別なドローアブルを使用してこれを実装できると思いましselectorたが、明らかにstate_first、state_middle、state_lastはサポートされていません-使用すると背景が空白になりますが、(最も外側のタブを除いて)問題ありません私はしません。

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<!-- middle buttons -->
<item android:state_middle="true" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/groupbutton_normal" />
<item android:state_selected="true" android:state_pressed="true"  android:drawable="@drawable/groupbutton_pressed" />

<!-- first button -->
<item android:state_first="true" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/groupbutton_first_normal" />
<item android:state_first="true" android:state_selected="true"  android:state_pressed="true"  android:drawable="@drawable/groupbutton_first_pressed" />

<!-- lastbutton -->
<item android:state_last="true" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/groupbutton_first_normal" />
<item android:state_last="true" android:state_selected="true"  android:state_pressed="true"  android:drawable="@drawable/groupbutton_first_pressed" />

</selector>

状態なしで機能しmiddle, first, last、次のようになります。

この外観でのみ機能します。

ここに画像の説明を入力

私はすでにコードを見てきましたが、タブは a内TabViewの s ( から派生したTextView)の集まりにすぎず、HorizontalScrollViewそれらの状態属性をサポートしていないと思います。

これを解決するための実装またはアイデアはありますか?

4

2 に答える 2

1

私は同じ問題を抱えていました.1つは中央のボタン用、もう1つは最初のボタン用、もう1つは最後のボタン用の3つのセレクターを作成することで解決しました。次に、各ボタンのレイアウト ファイルに正しいセレクターを設定する必要があります。

私は単なる回避策であり、 android:state_first="true" の質問を解決しないことを知っていますが、少なくともレイアウトはうまく見えます。

于 2013-10-02T09:22:10.667 に答える