水平视图中的ActionBar选项卡样式

时间:2013-11-02 11:50:10

标签: android android-actionbar android-tabs android-styles

在纵向模式下使用手机或平板电脑时,ActionBar下会显示标签和菜单项。在水平模式的平板电脑上,它们与徽标和菜单项一起显示。在此配置中,选择的选项卡下的下划线将丢失。

什么样的风格控制了这个?在纵向模式下,当标签与徽标和菜单一起显示时,我想使用与横向模式不同的选定样式。

我的主题将其父级设置为Theme.AppCompat.Light。根据它,我有

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

android:actionBarTabStyleandroid:background值设置为

的drawable
<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值。设置为drawable的图像与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>

前三个是图像,progressBarStyle也包含一些样式,但它们无关紧要。

1 个答案:

答案 0 :(得分:-1)

你应该对ActionBarTabStyle感兴趣。

要为内嵌选项卡使用不同的图像,您可以假设它代表横向模式并为横向模式创建自定义选择器。

如果您想要完整的选项集,请检查一下 http://jgilfelt.github.io/android-actionbarstylegenerator 下载zip,用您自己的png文件替换生成的图像,并在项目中添加样式。