8

Jake Wharton の ViewpagerIndicator ライブラリを使用しています。タブ コードを ActionBarSherlock ライブラリと組み合わせて使用​​しています。すべて正常に動作しますが、タブの背景のスタイルを設定しようとしていますが、その方法がわかりません。暗いタブと明るいフラグメント (タブ コンテンツ) を備えた暗いアクション バーが必要です。

私が使用している基本テーマは Theme.Sherlock.Light.DarkActionBar です。タブの属性 (テキストの色、インジケーターの色など) を設定するスタイルの親にすることで、このスタイルを拡張します。これにより、アクションバーが暗くなり、タブが明るくなり、フラグメントが明るくなります。

タブ自体の背景を変更するものは見つかりません。これを変更できる唯一の方法は、アプリ全体をダークに変更することです (Theme.Sherlock を使用)。これまでの私のコードは次のとおりです。

<style name="vpiTheme" parent="Theme.Sherlock.Light.DarkActionBar">
    <item name="vpiTabPageIndicatorStyle">@style/CustomTabPageIndicator</item>
</style>

<style name="CustomTabPageIndicator" parent="Widget.TabPageIndicator">
    <item name="android:textColor">#FF000000</item>
    <item name="android:paddingTop">6dp</item>
    <item name="android:paddingBottom">6dp</item>
    <item name="android:paddingLeft">16dip</item>
    <item name="android:paddingRight">16dip</item>
    <item name="android:maxLines">2</item>
</style>
4

2 に答える 2

7

9 パッチのドローアブルはほとんどが透明であるため、次のように ViewPagerIndicator 全体に背景色を追加するだけでタブの色を変更できます。

<com.viewpagerindicator.TabPageIndicator
    android:id="@+id/indicator"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:background="#333333" />

これにより、 に基づくテーマを引き続き使用でき、Theme.Sherlock.Light.DarkActionBar新しいドローアブルを作成する必要がなくなります。

于 2012-12-08T13:28:07.510 に答える
0

最初にドローアブルをプロジェクトに追加します。以下は tab_indicator.xml と呼ばれます。

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@android:color/black" />
<item android:state_focused="false" android:state_selected="true"  android:state_pressed="false" android:drawable="@android:color/white" />
<item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@android:color/black" />
<item android:state_focused="true" android:state_selected="true"  android:state_pressed="false" android:drawable="@android:color/white" />
</selector>

次に、スタイルでドローアブルを参照します。

<item name="android:background">@drawable/tab_indicator</item>

これにより、アクティブなタブの背景が白になり、他のタブは黒になります。

于 2012-10-23T22:13:29.257 に答える