- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
此主题效果很好,为 ActionBar 选项卡的 3 个部分引用了三种自定义样式。
但是“dividerPadding”对它们中的任何一个都没有影响 - 在 API 17 设备上运行。
<style name="Theme.AppEmptyTitleBar" parent="android:style/Theme.Holo">
<item name="android:actionBarStyle">@style/AB</item>
<item name="android:actionBarTabStyle">@style/ABT</item>
<item name="android:actionBarTabBarStyle">@style/ABTB</item>
</style>
<style name="AB" parent="android:style/Widget.Holo.ActionBar">
<item name="android:dividerPadding">20dip</item>
</style>
<style name="ABT" parent="android:style/Widget.Holo.Light.ActionBar.TabView">
<item name="android:dividerPadding">20dip</item>
</style>
<style name="ABTB" parent="android:style/Widget.Holo.ActionBar.TabBar">
<item name="android:dividerPadding">20dip</item>
</style>
最佳答案
首先,dividerPadding
属性(据我所知)仅适用于 *ActionBar.TabBar
风格。
我已经使用原生 ActionBar
的非常基本的应用程序测试了您的风格和一个提供 API 17 的设备。我设置了 dividerPadding
属性设置为不同的值,并将其余属性保留为默认值。以下是结果:
dividerPadding="0dip"
:
dividerPadding="15dip"
:
dividerPadding="20dip"
:
如您所见,分隔符在最后一张图片上消失了。所以我的第一个建议是检查你是否看到它。除此之外,dividerPadding
似乎按预期工作。
我的第二个建议来自 Android 平台处理放置在不同 values-*
中的样式资源的方式。目录。我的预感是您可能会在默认情况下使用操作栏样式 values
目录。如果您碰巧在 values-*
中提供了这些样式的覆盖兼容的目录(例如 values-vX
其中 X <= 17
),样式来自 values
将被忽略。例如,假设您已将这些样本样式放在 values/styles.xml
中文件:
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="AppTheme" parent="@android:style/Theme.Holo">
<item name="android:actionBarTabBarStyle">@style/ABTB</item>
</style>
<style name="ABTB" parent="@android:style/Widget.Holo.ActionBar.TabBar">
<item name="android:dividerPadding">0dip</item>
</style>
</resources>
如果您随后将此样式定义放在 values-v17/styles.xml
中:
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="AppTheme" parent="@android:style/Theme.Holo">
</style>
</resources>
它将覆盖 AppTheme
样式,有效地“重置”(技术上:忽略)整个 actionBarTabBarStyle
样式(包括 dividerPadding
属性值)。实际上,您不会看到对 ABTB
所做的任何更改。风格。
编辑
是的,我假设你知道,抱歉 :( dividerPadding
值仅适用于:
TabWidget
时分隔线的顶部和底部(它是标签标签的容器)水平绘制标签。TabWidget
时分隔符的左右两侧垂直绘制标签。这正是您在屏幕截图中看到的。据我所知,你必须设置 divider
到一个可绘制的对象,这将强制进行额外的填充。我相信layer
drawable 非常适合这个目的,因为您可以为每一层显式设置填充。
关于android:dividerPadding 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14757829/
此主题效果很好,为 ActionBar 选项卡的 3 个部分引用了三种自定义样式。 但是“dividerPadding”对它们中的任何一个都没有影响 - 在 API 17 设备上运行。
我这辈子都无法编译 ViewPagerIndicator 以在我的项目中使用! 网站:http://viewpagerindicator.com/ Github: https://github.com
我正在尝试使用 AppCompat 库,但我在以下样式项上遇到了一些错误: 10dp middle android:dividerPadding requires API level 11 (curr
当我尝试调试我的应用程序时出现错误 错误:(464) 属性“dividerPadding”已被定义 build.gradle apply plugin: 'com.android.applicatio
我是一名优秀的程序员,十分优秀!