最近、Android アプリを開発していますが、タブ バーのカスタム レイアウトとサイズが必要です。これまでは、Jake Wharton の ActionBarSherlock ライブラリを使用して HoneyComb 以前の Android バージョンをサポートし、actionBarSize スタイル項目を編集してアプリにスタイルを適用していました。
現在、Galaxy S3 (Jellybean 搭載) でアプリをテストしていますが、タブ バーの高さは値に応じて変化しなくなりましたactionBarSize
。
そこで、JellyBean のコードを調べ始めたところ、ActionBarPolicy
クラス内に次のメソッドが見つかりました。
public int getTabContainerHeight() {
TypedArray a = mContext.obtainStyledAttributes(null, R.styleable.ActionBar,
com.android.internal.R.attr.actionBarStyle, 0);
int height = a.getLayoutDimension(R.styleable.ActionBar_height, 0);
Resources r = mContext.getResources();
if (!hasEmbeddedTabs()) {
// Stacked tabs; limit the height
height = Math.min(height,
r.getDimensionPixelSize(R.dimen.action_bar_stacked_max_height));
}
a.recycle();
return height;
}
この方法で収集した情報によると、アプリがポートレート モードの場合、アクション バーの高さを に設定しているにもかかわらず、JellyBean はタブ バーの高さを "action_bar_stacked_max_height" ディメンション値 (4.1 の/values/dimen.xml
ファイルでは 48dp) に設定して TabBar の高さを制限しているようですactionBarSize
。
自分のファイルで自分の値に設定してこのディメンション値を上書きしようとしましたdimen.xml
が、うまくいきませんでした。機能しませんでした。
私の質問:
「action_bar_stacked_max_height」の寸法値を上書きする方法をご存知ですか?
よろしくお願いします!
ベストアンサー1
次のように、使用しているテーマの下にandroid:actionBarSize
とを入れてみてください。actionBarSize
<style name="Theme.white_style" parent="@android:style/Theme.Holo.Light.DarkActionBar">
<item name="android:actionBarSize">55dp</item>
<item name="actionBarSize">55dp</item>
</style>