样式操作栏导致选项卡消失
Styling Actionbar causes the tabs to disappear
我尝试为我的应用程序设置操作栏和选项卡的样式,但每次尝试设置样式时,操作栏选项卡都消失了
<resources>
<style name="STheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="actionBarStyle">@style/MyActionBar</item>
<item name="actionBarTabTextStyle">@style/MyActionBarTabText</item>
<item name="actionBarTabStyle">@style/MyActionBarTabView</item>
<item name="android:dialogTheme">@style/MyDialog</item>
</style>
<style name="MyActionBar" parent="@android:style/Widget.Holo.ActionBar">
<item name="background">@color/orange</item>
</style>
<style name="MyActionBarTabText" parent="@android:style/Widget.Holo.ActionBar.TabText">
<item name="android:textAllCaps">false</item>
<item name="android:textSize">10sp</item>
</style>
<style name="MyActionBarTabView" parent="@android:style/Widget.Holo.ActionBar.TabView">
<item name="background">@drawable/actionbar_tab_indicator</item>
<item name="showDividers">middle</item>
<item name="measureWithLargestChild">true</item>
</style>
当我删除此行(actionbar 样式)时,出现选项卡:
<item name="actionBarStyle">@style/MyActionBar</item>
有人知道为什么会这样吗?
您正在使用支持库 Theme.AppCompat
,因此您的自定义样式 parent
应该是这样的:
<style name="MyActionBar"
parent="@android:style/Widget.AppCompat.ActionBar">
<item name="background">@color/orange</item>
</style>
<style name="MyActionBarTabText"
parent="@android:style/Widget.AppCompat.ActionBar.TabText">
<item name="android:textAllCaps">false</item>
<item name="android:textSize">10sp</item>
</style>
<style name="MyActionBarTabView"
parent="@android:style/Widget.AppCompat.ActionBar.TabView">
<item name="background">@drawable/actionbar_tab_indicator</item>
<item name="showDividers">middle</item>
<item name="measureWithLargestChild">true</item>
</style>
[更新]
对于以上样式,需要将您的 STheme
更改为:
<style name="STheme" parent="@style/Theme.AppCompat">
如果你真的想为 STheme
使用 style/Theme.AppCompat.Light.DarkActionBar
那么相应地必须更改自定义样式父级:
<style name="MyActionBar"
parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
希望对您有所帮助!
您在 parent 风格中使用 AppCompact 风格,而不是如何在 child 风格中使用 Holo 风格?
更新样式 parent 如:
<style name="MyActionBar" parent="@style/Widget.AppCompat.ActionBar">
<style name="MyActionBarTabText" parent="@style/Widget.AppCompat.ActionBar.TabText">
<style name="MyActionBarTabView" parent="@style/Widget.AppCompat.ActionBar.TabView">
另请参阅这个非常有用的页面来自定义操作栏:ActionbarStyleGenerator
希望对您有所帮助!
我尝试为我的应用程序设置操作栏和选项卡的样式,但每次尝试设置样式时,操作栏选项卡都消失了
<resources>
<style name="STheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="actionBarStyle">@style/MyActionBar</item>
<item name="actionBarTabTextStyle">@style/MyActionBarTabText</item>
<item name="actionBarTabStyle">@style/MyActionBarTabView</item>
<item name="android:dialogTheme">@style/MyDialog</item>
</style>
<style name="MyActionBar" parent="@android:style/Widget.Holo.ActionBar">
<item name="background">@color/orange</item>
</style>
<style name="MyActionBarTabText" parent="@android:style/Widget.Holo.ActionBar.TabText">
<item name="android:textAllCaps">false</item>
<item name="android:textSize">10sp</item>
</style>
<style name="MyActionBarTabView" parent="@android:style/Widget.Holo.ActionBar.TabView">
<item name="background">@drawable/actionbar_tab_indicator</item>
<item name="showDividers">middle</item>
<item name="measureWithLargestChild">true</item>
</style>
当我删除此行(actionbar 样式)时,出现选项卡:
<item name="actionBarStyle">@style/MyActionBar</item>
有人知道为什么会这样吗?
您正在使用支持库 Theme.AppCompat
,因此您的自定义样式 parent
应该是这样的:
<style name="MyActionBar"
parent="@android:style/Widget.AppCompat.ActionBar">
<item name="background">@color/orange</item>
</style>
<style name="MyActionBarTabText"
parent="@android:style/Widget.AppCompat.ActionBar.TabText">
<item name="android:textAllCaps">false</item>
<item name="android:textSize">10sp</item>
</style>
<style name="MyActionBarTabView"
parent="@android:style/Widget.AppCompat.ActionBar.TabView">
<item name="background">@drawable/actionbar_tab_indicator</item>
<item name="showDividers">middle</item>
<item name="measureWithLargestChild">true</item>
</style>
[更新]
对于以上样式,需要将您的 STheme
更改为:
<style name="STheme" parent="@style/Theme.AppCompat">
如果你真的想为 STheme
使用 style/Theme.AppCompat.Light.DarkActionBar
那么相应地必须更改自定义样式父级:
<style name="MyActionBar"
parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
希望对您有所帮助!
您在 parent 风格中使用 AppCompact 风格,而不是如何在 child 风格中使用 Holo 风格? 更新样式 parent 如:
<style name="MyActionBar" parent="@style/Widget.AppCompat.ActionBar">
<style name="MyActionBarTabText" parent="@style/Widget.AppCompat.ActionBar.TabText">
<style name="MyActionBarTabView" parent="@style/Widget.AppCompat.ActionBar.TabView">
另请参阅这个非常有用的页面来自定义操作栏:ActionbarStyleGenerator
希望对您有所帮助!