私は最近タブバのカスタムレイアウトとディメンションが必要なAndroidアプリを開発しています。私がこれまでやったやり方は、Jake WhartonのActionBarSherlockライブラリを使ってHoneyCombの前のバージョンをサポートし、appBarSizeスタイルアイテムを編集するスタイルをアプリケーションに適用することです。Android JellyBeanのアクションバーの高さを変更しました
今、私はギャラクシーS3(それにジェリービーンズ付き)でアプリをテストしていて、タブバーの高さは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がTabBarの高さを制限しているようです、アプリがポートレートモードのときは、アクションバーの高さをactionBarSize
に設定しても、タブバーの高さを「action_bar_stacked_max_height」ディメンション値(4.1の/values/dimen.xml
ファイルの48dp)に設定します。
このディメンション値を、自分のdimen.xml
ファイルで自分の値に設定することで上書きしようとしましたが、運がなかった。それはうまくいかなかった。
私の質問:
君たちは私が「action_bar_stacked_max_height」DIMEN値を上書きすることができる方法を知っていますか?
ありがとうございます!
私も同じ問題があります。あなたがこれで見つけた解決策はありますか? – user936414