ActionBar のタブは ScrollingTabContainerView です。
このコンストラクタで setContentHeight() を呼んで高さを設定しています。
高さには ActionBarPolicy の getTabContainerHeight() の値を指定しています。
http://tools.oesf.biz/android-4.2.0_r1.0/xref/frameworks/base/core/java/com/android/internal/widget/ScrollingTabContainerView.java#71
71 public ScrollingTabContainerView(Context context) {
72 super(context);
73 setHorizontalScrollBarEnabled(false);
74
75 ActionBarPolicy abp = ActionBarPolicy.get(context);
76 setContentHeight(abp.getTabContainerHeight());
77 mStackedTabMaxWidth = abp.getStackedTabMaxWidth();
78
79 mTabLayout = createTabLayout();
80 addView(mTabLayout, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
81 ViewGroup.LayoutParams.MATCH_PARENT));
82 }
83
ActionBarPolicy の getTabContainerHeight() では、android:actionBarStyle の android:height と R.dimen.action_bar_stacked_max_height の最小値を返しています。つまり、タブの高さは R.dimen.action_bar_stacked_max_height より大きくならないということです。
http://tools.oesf.biz/android-4.2.0_r1.0/xref/frameworks/base/core/java/com/android/internal/view/ActionBarPolicy.java#65
65 public int getTabContainerHeight() {
66 TypedArray a = mContext.obtainStyledAttributes(null, R.styleable.ActionBar,
67 com.android.internal.R.attr.actionBarStyle, 0);
68 int height = a.getLayoutDimension(R.styleable.ActionBar_height, 0);
69 Resources r = mContext.getResources();
70 if (!hasEmbeddedTabs()) {
71 // Stacked tabs; limit the height
72 height = Math.min(height,
73 r.getDimensionPixelSize(R.dimen.action_bar_stacked_max_height));
74 }
75 a.recycle();
76 return height;
77 }
R.dimen.action_bar_stacked_max_height は 48dp なので、これより大きくできません。
http://tools.oesf.biz/android-4.2.0_r1.0/xref/frameworks/base/core/res/res/values/dimens.xml#229
229 <!-- Maximum height for a stacked tab bar as part of an action bar -->
230 <dimen name="action_bar_stacked_max_height">48dp</dimen>
0 件のコメント:
コメントを投稿