强制Actionbar与Tab显示为一行或两行

本文详细介绍了如何在Android应用中使用Actionbar设置Tab导航模式,并解释了不同屏幕尺寸下Tab的显示方式。同时提供了代码示例,展示如何强制在所有情况下显示Tab为单行或两行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Actionbar使用Tab模式

  • ActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS)即可另Actionbra使用tab作为导航模式;
  • ActionBar.addTab(Tab tab)使用该方法为你的导航添加具体的Tab;

显示为单行还是两行?

  • 根据Developer官方Holo Design指导,当屏幕宽度足够时,Tab将嵌入Actionbar显示为一行,如大屏Pad、手机横屏时;
  • Action bar tabs on a wide screen
  • 当屏幕宽度较窄时,Tab显示在Actionbar下一行,总共两行,常见于手机竖屏时;
  • Tabs on a narrow screen

强制在所有情况下显示为单行或两行

  • 有时需求在pad上显示双行Tab,或是在手机竖屏时显示为单行Actionbar;
  • 强制显示为单行

  • try {
              Method setHasEmbeddedTabsMethod = mActionBar.getClass().getDeclaredMethod(
                      "setHasEmbeddedTabs", boolean.class);
              setHasEmbeddedTabsMethod.setAccessible(true);
              setHasEmbeddedTabsMethod.invoke(mActionBar, true);
          } catch (Exception ignore) {
          }
  • 强制显示为两行

  • try {
              Method setHasEmbeddedTabsMethod = mActionBar.getClass().getDeclaredMethod(
                      "setHasEmbeddedTabs", boolean.class);
              setHasEmbeddedTabsMethod.setAccessible(true);
              setHasEmbeddedTabsMethod.invoke(mActionBar, false);
          } catch (Exception ignore) {
          }

使用ActionbarSherlock

  • ActionbarSherlock在3.0系统版本及以上直接调用Android原生的Actionbar,在2.3及以下使用内建的Actionbar来兼容;
  • 原生类ActionBarWrapper中,通过上边的反射修改private final android.app.ActionBar mActionBar;
  • 兼容类ActionBarImpl中,指定setHasEmbeddedTabs(boolean hasEmbeddedTabs)中参数即可;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值