我有以下值文件夹(除了默认文件夹):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 复制到所有的值文件夹中。在运行 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 的填充被忽略了呢?设置负填充不会改变任何东西