次の値フォルダーがあります (デフォルトのフォルダーに加えて): 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 フォルダーのスタイルを無視するのはなぜですか?
更新 値-sw600dpのスタイルにwindowBackgroundアイテムを追加しました。正しく表示されます。しかし、actionBar のパディングが無視されるのはなぜですか? 負のパディングを設定しても何も変わりません