2013-08-31 41 views
1

我有以下值文件夹(除默认值之外):values-sw400dpvalues-sw600dp。因为我需要那么删除我的动作条图标之间的间距我使用的风格:values-sw600dp将不起作用

 <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; 

} 

所以,问题是:为什么设备忽略价值观sw600dp文件夹样式?

UPDATE我刚刚将windowBackground项目添加到values-sw600dp中的样式。它显示正确。但为什么被忽略的actionBar的填充?设置负填充不会改变任何东西

+0

尝试增加'<项目名= “机器人:paddingStart”> 0dip'和'<项目名= “机器人:paddingEnd”> 0dip'到'ActionBarTabStyle '。 – Vikram

+0

家伙我使用普通的ActionBar而不是Sherlock。填充只对平板电脑没有影响。 paddingStart和paddingEnd不是TabView的可接受属性 – Droidman

+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> 

了Android的默认值:minWidth的动作条按钮是56dip。不要忘记将@ style/AppTheme设置为活动的主题。

[ActionBarSherlock - How to set the padding of each actionbar's icon?

来源:ActionBarSherlock - How to set the padding of each actionbar's icon?

+0

我不使用Sherlock,而是一个正常的ActionBar。我的MINSDK是11 – Droidman

+0

尝试改变minWidth的值,它可能工作。 –

+0

我应该改变它的风格覆盖Widget.Holo.ActionBar.TabView? – Droidman