机器人动作条设置宽度与突片(Android Actionbar set width to the t

2019-09-03 17:43发布

目前,我正忙着为我公司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>

然而,宽度不会虾使用更高负值时。

Answer 1:

嗨,我想这可能会帮助你...这个代码实际上是使绑定到屏幕宽度的动作条,所以标签将自行调整=)

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);
  }
}


Answer 2:

如果你需要“5在一起的一个屏幕,而无需在滚动”更好地利用TabHost在布局的顶部。



文章来源: Android Actionbar set width to the tabs