3

携帯電話またはタブレットを縦向きモードで使用すると、ロゴとメニュー項目を含む ActionBar の下にタブが表示されます。水平モードのタブレットでは、ロゴやメニュー項目と一緒にインラインで表示されます。この構成では、選択したタブの下のアンダースコアが失われます。

これを制御するスタイルは何ですか? ポートレート モードでは、タブがロゴやメニューとインラインで表示される場合、ランドスケープ モードとは異なる選択スタイルを使用したいと考えています。

私のテーマの親は に設定されていTheme.AppCompat.Lightます。その下にある

<item name="android:actionBarTabStyle">@style/ActionBarTabStyle.Silence</item>
<item name="android:actionBarStyle">@style/ActionBar.Solid.Silence</item>

android:actionBarTabStyle次のドローアブルにandroid:background値が設定されています

<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="@android:color/transparent" />
    <item android:state_focused="false" android:state_selected="true"  android:state_pressed="false" android:drawable="@drawable/tab_selected_silence" />

    <!-- Focused states -->
    <item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_unselected_focused_silence" />
    <item android:state_focused="true" android:state_selected="true"  android:state_pressed="false" android:drawable="@drawable/tab_selected_focused_silence" />

    <!-- Pressed -->
    <!--    Non focused states -->
    <item android:state_focused="false" android:state_selected="false" android:state_pressed="true" android:drawable="@drawable/tab_unselected_pressed_silence" />
    <item android:state_focused="false" android:state_selected="true"  android:state_pressed="true" android:drawable="@drawable/tab_selected_pressed_silence" />

    <!--    Focused states -->
    <item android:state_focused="true" android:state_selected="false" android:state_pressed="true" android:drawable="@drawable/tab_unselected_pressed_silence" />
    <item android:state_focused="true" android:state_selected="true"  android:state_pressed="true" android:drawable="@drawable/tab_selected_pressed_silence" />
</selector>

私はこれらのstate_selected価値観を理解しています。これらの描画可能として設定されている画像は、ActionBar の背景とは異なる色であるため、同じ色の背景の上に表示されないだけではありません。

actionBarStyle含むのスタイル

<item name="android:background">@drawable/ab_solid_silence</item>
<item name="android:backgroundStacked">@drawable/ab_stacked_solid_silence</item>
<item name="android:backgroundSplit">@drawable/ab_bottom_solid_silence</item>
<item name="android:progressBarStyle">@style/ProgressBar.Silence</item>

最初の 3 つはイメージで、progressBarStyleいくつかのスタイルも含まれていますが、それらは無関係です。

4

1 に答える 1