【问题标题】:values-sw600dp won't workvalues-sw600dp 不起作用
【发布时间】:2013-09-01 01:54:29
【问题描述】:

我有以下值文件夹(除了默认文件夹):values-sw400dpvalues-sw600dp。由于我需要删除 actionBar 图标之间的间距,因此我使用了一种样式:

     <style name="ActionBarTabStyle" parent="@android:style/Widget.Holo.ActionBar.TabView">
    <item name="android:background">@android:color/transparent</item>
    <item name="android:paddingLeft">0dp</item>
    <item name="android:paddingRight">0dp</item>
</style>

然后将styles.xml 复制到所有的values 文件夹中。在运行 4.1.1 的 SGS2 i9100 上它工作正常,但在 PocketBook 平板电脑(运行相同的 android 版本)上,间距似乎是默认间距。以下方法返回 600:

    public static int getScreenWidth(Activity a) {

    Display display = a.getWindowManager().getDefaultDisplay();
    DisplayMetrics outMetrics = new DisplayMetrics();
    display.getMetrics(outMetrics);

    float density = a.getResources().getDisplayMetrics().density;
    float dpWidth = outMetrics.widthPixels / density;

    return (int) dpWidth;

}

所以问题是:为什么设备会忽略 values-sw600dp 文件夹中的样式?

更新 我刚刚将 windowBackground 项目添加到 values-sw600dp 中的样式中。它显示正确。但是为什么 actionBar 的填充被忽略了呢?设置负填充不会改变任何东西

【问题讨论】:

  • 尝试将&lt;item name="android:paddingStart"&gt;0dip&lt;/item&gt;&lt;item name="android:paddingEnd"&gt;0dip&lt;/item&gt; 添加到ActionBarTabStyle
  • 伙计们,我使用普通的 ActionBar 而不是 Sherlock。并且填充仅对平板电脑没有影响。 paddingStart 和 paddingEnd 不是 TabView 可接受的属性
  • 您需要为图标或标签添加填充吗?
  • 我的 actionBar 使用选项卡(图标而不是文本)进行导航,我需要减少它们之间的间距。我发布的风格在手机上很好用,但在平板电脑上不行
  • Widget.ActionBar.TabViewWidget.Holo.ActionBar.TabView 的父级,它定义了 paddingStartpaddingEnd = 16dp。

标签: android android-screen-support


【解决方案1】:

试试这个为你的操作栏图标设置填充:

<style name="AppTheme" parent="Theme.Sherlock">
    <item name="actionButtonStyle">@style/MyActionButtonStyle</item>
    <item name="android:actionButtonStyle">@style/MyActionButtonStyle</item>
</style>

<style name="MyActionButtonStyle" parent="Widget.Sherlock.ActionButton">
    <item name="android:minWidth">32dip</item>
    <item name="android:padding">0dip</item>
</style>

ActionBar 按钮的 android:minWidth 默认值为 56dip。不要忘记将@style/AppTheme 设置为Activity 的主题。

[ActionBarSherlock - How to set the padding of each actionbar's icon?

来源:ActionBarSherlock - How to set the padding of each actionbar's icon?

【讨论】:

  • 我不使用 Sherlock,而是使用普通的 ActionBar。我的 minSDK 是 11
  • 我应该在覆盖 Widget.Holo.ActionBar.TabView 的样式中更改它吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-23
  • 2023-04-03
  • 2013-09-15
  • 1970-01-01
  • 2011-07-21
相关资源
最近更新 更多