【发布时间】:2014-10-02 13:57:50
【问题描述】:
我的应用程序中出现一个奇怪的 UI 错误,该错误仅在 android 4.1.2(真实设备)上出现。
错误是活动选项卡上的背景颜色是黑色(见下面的截图) 它应该是:活动(选定)选项卡的白色背景色和非活动未选定选项卡的灰色背景。
虽然在我的styles.xml文件中,我清楚地设置了当标签处于活动状态的白色背景的状态列表,并且它在Android版本4.2.2及更高版本上完美地工作。
这是我的styles.xml:
<!-- Base application theme. -->
<style name="AppTheme" parent="android:Theme.Holo.Light">
<!-- Customize your theme here. -->
<item name="android:actionBarStyle">@style/MyActionBar</item>
<item name="android:actionBarTabTextStyle">@style/TabText</item>
<!-- This is a White background -->
<item name="android:actionBarTabBarStyle">@style/TabBar</item>
<item name="android:actionBarTabStyle">@style/MyActionBarTabs</item>
</style>
styles.xml中标签栏的自定义:
<style name="TabBar" parent="android:style/Widget.Holo.Light.ActionBar.TabBar">
<!-- This is a White background -->
<item name="android:background">@color/white</item>
</style>
<!-- ActionBar tabs styles -->
<style name="MyActionBarTabs" parent="android:style/Widget.Holo.Light.ActionBar.TabView">
<!-- tab indicator -->
<item name="android:background">@drawable/tab_bar_background</item>
</style>
<style name="TabText" parent="android:style/Widget.Holo.Light.ActionBar.TabText">
<!-- This is a WHITE tab color -->
<item name="android:textColor">@color/selector_tab_text</item>
<item name="android:textAllCaps">false</item>
</style>
这是我的:tab_bar_background.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- UNSELECTED TAB STATE -->
<item android:state_selected="false" android:state_pressed="false">
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Bottom indicator color for the UNSELECTED tab state -->
<!-- Tab background color for the SELECTED tab state -->
<item>
<shape>
<solid android:color="#d0d0d0"/>
</shape>
</item>
</layer-list>
</item>
<!-- SELECTED TAB STATE -->
<item android:state_selected="true" android:state_pressed="false">
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Tab background color for the SELECTED tab state -->
<item>
<shape>
<solid android:color="@color/white"/>
</shape>
</item>
<!-- Bottom indicator color for the SELECTED tab state -->
<item android:top="-5dp" android:left="-5dp" android:right="-5dp">
<shape android:shape="rectangle">
<stroke android:color="#309CB9" android:width="3dp"/>
</shape>
</item>
</layer-list>
</item>
</selector>
我在我的活动上添加了扩展 FragmentActivity 并像这样实现 TabListener 的选项卡:
//sets the tabs
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
正如我提到的,这段代码在 android 版本 4.2.2 上完美运行(所选标签的白色背景)
我错过了什么吗?
感谢您的宝贵时间。
【问题讨论】:
标签: android android-fragments tabs android-actionbar tabbar