【发布时间】:2013-09-01 01:54:29
【问题描述】:
我有以下值文件夹(除了默认文件夹):values-sw400dp、values-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 的填充被忽略了呢?设置负填充不会改变任何东西
【问题讨论】:
-
尝试将
<item name="android:paddingStart">0dip</item>和<item name="android:paddingEnd">0dip</item>添加到ActionBarTabStyle。 -
伙计们,我使用普通的 ActionBar 而不是 Sherlock。并且填充仅对平板电脑没有影响。 paddingStart 和 paddingEnd 不是 TabView 可接受的属性
-
您需要为图标或标签添加填充吗?
-
我的 actionBar 使用选项卡(图标而不是文本)进行导航,我需要减少它们之间的间距。我发布的风格在手机上很好用,但在平板电脑上不行
-
Widget.ActionBar.TabView是Widget.Holo.ActionBar.TabView的父级,它定义了paddingStart和paddingEnd= 16dp。
标签: android android-screen-support