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

Actionbar使用Tab模式

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

显示为单行还是两行?

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

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

  • 有时需求在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)中参数即可;
时间: 2024-12-18 07:06:39

强制Actionbar与Tab显示为一行或两行的相关文章

【转】【已解决】Android中ActionBar中不显示overflow(就是三个点的那个按钮)--不错

原文网址:http://www.crifan.com/android_actionbar_three_dot_overflow_not_show/ [问题] 折腾: [记录]继续尝试给Android程序的右上角的ActionBar中添加三个点的选项按钮 期间,已经按照官网的教程: Action Bar | Android Developers 去添加代码,增加menu,然后显示在ActionBar中了. 但是遇到的问题是: 对于menu的item,没有指定android:showAsAction

使用ActionBar实现Tab导航

为了使用ActionBar实现Tab导航,按如下步骤进行即可. 1.调用ActionBar的setNavigationMode(ActionBar.NAVIGATION_MODE_TABS)方法设置使用Tab导航方式. 2.调用ActionBar的addTab方法添加多个Tab标签,并为每个Tab标签添加事件监听. Fragment相当于activity片段,通常使用单独的activity组合多个fragment,这样既可以在一个activity创建多个用户界面,又可以让多个activity复用

【Android UI设计与开发】第11期:顶部标题栏(二)ActionBar实现Tab选项卡和下拉导航列表

转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/9050573  在上一篇文章中,我们只是大概的了解了一下关于ActionBar这个类的简单用法,今天我会继续以实例进行更加深入的讲解. 一.实现Tab选项标签 当你想要在一个Activity中提供Tab选项卡时,使用ActionBar的Tab选项标签是一个非常好的选择(而不是使用TabWidget类),因为系统会调整ActionBar的选项标签来适应不同尺寸的屏幕的需要,比如

用BadgeView在actionbar menu上显示提醒信息

有时候需要在actionbar menu上显示消息个数,所以可以用BadgeView来实现. 实现方法是获取actionbar menuitem的view,然后创建BadgeView.注意,通常只能在Optionsmenu创建完成之后去获取menuitem的view.我们可以在onCreate方法中延时1秒去处理. <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="ht

TabActivity的用法Tab显示在底部

Tab标签页是一个非常常用的控件,.net里面就有multipage+tabstrip组合通过标签的切换实现页面的切换,同理html里面我们常用frameset来实现,android里面我们则通过使用FrameLayout+TabWidget, FrameLayout里面装载xml页面,TabWidget显示标签,点击标签跳转到相关的activity或者view.public class TabActivity extends ActivityGroup的详细继承关系如下:     java.l

Android ActionBar 关于tab的应用 以及 TabListener的方法详解

actionBar的tab标签应用以及TabListener的方法详解 package com.example.actionBarTest.actionBarTab; import android.app.*; import android.os.Bundle; import com.example.actionBarTest.R; import java.util.ArrayList; import java.util.List; /** * Created by Heyiyong on 20

shell 练习题02 一个文件里将内容三行显示为一行

要求: 一个文件里将内容三行显示为一行 思路:是将第二行的内容,第三行的内容依次附加到第一行中,这样三行的内容就能变为一行,如果不够三行自动融为一行,具体如下 [[email protected] shell]# cat /tmp/chy.txt  1 2 3 4 g 6 8 (查看chy.txt的内容) [[email protected] shell]# vim yihang.sh #!/bin/bash #this is san hang bian wei yi hang sed 'N;N

easyui-combobox select 设置不分行(只显示在一行)

使用easyui 1.4.4 <select id="hotalid" class="easyui-combobox" data-options=" url:'<%=basePath %>xxx.action', method:'get', valueField:'hotelId', textField:'hotelName', panelHeight:300" name="HotelID" style=&q

table点击一行显示下一行的特效

效果体验:http://sandbox.runjs.cn/show/rw4vq8zo <!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> <style> .bordertable {width:100%;border-collapse: collapse;color: #707070;background: