2013-08-31 60 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