我有以下值文件夹(除了默认值):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文件夹中的样式?
UPDATE 我刚刚将windowBackground项添加到values-sw600dp中的样式。它显示正确。但是为什么actionBar的填充被忽略了?设置负填充不会改变任何内容
答案 0 :(得分:0)
尝试将此填充设置为操作栏图标:
<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?