[英]Android Actionbar set width to the tabs
目前,我正在为公司忙于WHMCS应用程序。 导航时,我想使用操作栏中的“标签”功能。
但是,如何编辑标签的宽度? 我需要在一个屏幕上合计5个,而无需滚动。 我已经用以下某些样式尝试过:
<style name="AppBaseTheme" parent="android:Theme.Light">
</style>
<style name="AppTheme" parent="AppBaseTheme">
<item name="@android:attr/actionBarTabStyle">@style/tab_nav</item>
<item name="android:actionBarTabTextStyle">@style/actionBarTabTextStyle</item>
</style>
<style name="actionBarTabTextStyle" parent="android:Widget.Holo.Light.ActionBar.TabText.Inverse">
<item name="android:padding">1dp</item>
</style>
<style name="tab_nav" parent="android:style/Widget.Holo.Light.Tab">
<item name="android:paddingLeft">-25dp</item>
</style>
<style name="CustomTabTextStyle" parent="@android:style/TextAppearance.Holo">
<item name="android:textColor">#2456c2</item>
</style>
但是,当使用更高的负值时,宽度将不会增加。
嗨,我认为这可能会对您有所帮助...该代码实际上是将操作栏绑定到屏幕宽度,因此选项卡将自行调整=)
private void setTabsMaxWidth() {
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int screenWidth = displaymetrics.widthPixels;
final ActionBar actionBar = getActionBar();
final View tabView = actionBar.getTabAt(0).getCustomView();
final View tabContainerView = (View) tabView.getParent();
final int tabPadding = tabContainerView.getPaddingLeft() + tabContainerView.getPaddingRight();
final int tabs = actionBar.getTabCount();
for(int i=0 ; i < tabs ; i++) {
View tab = actionBar.getTabAt(i).getCustomView();
TextView text1 = (TextView) tab.findViewById(R.id.text1);
text1.setMaxWidth(screenWidth/tabs-tabPadding-1);
}
}
如果您需要“在一个屏幕上5个在一起而不需要滚动”,最好使用布局顶部的TabHost 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.