values-sw600dp不起作用

时间:2013-08-31 17:01:32

标签: android android-screen-support

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

1 个答案:

答案 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?