gpt4 book ai didi

android:dividerPadding 无效

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:04:14 29 4
gpt4 key购买 nike

此主题效果很好,为 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" :

enter image description here

  • dividerPadding="15dip" :

enter image description here

  • dividerPadding="20dip" :

enter image description here

如您所见,分隔符在最后一张图片上消失了。所以我的第一个建议是检查你是否看到它。除此之外,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/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com