1

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

4

1 回答 1

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 - 如何设置每个动作栏图标的填充?

来源:ActionBarSherlock - 如何设置每个操作栏图标的填充?

于 2013-08-31T17:54:29.433 回答