ActionBar各种属性的详细解析

ActionBar

出自Android中文Wiki
跳转到: 导航, 搜索

ActionBar:

英文原文:http://developer.android.com/reference/android/app/ActionBar.html
版本:Android 4.0 r1
译者署名:Rongqi Fan
译者链接: 
ActionBar


public abstract class ActionBar extends Object

java.lang.Object
  ↳	android.app.ActionBar

有标题栏、导航模式、其它交互项的顶层Activity的窗口属性。

从Android 3.0开始,Activity使用系统Holo主题(及其后续的主题)的时候,默认情况下,工具栏出现在Activity窗口的顶层。你通过调用requestFeature(FEATURE_ACTION_BAR)或是通过windowActionBar定制主题的时候声明来添加工具栏。

默认情况下,程序的图标在工具栏的左边显示,前面是Activity的标题。如果你的Activity有一个选择菜单,。你可以修改工具栏的各种特性或完全移除它。

你可以通过你的Activity调用getActionBar()获取一个 ActionBar的实例。

一些时候,工具栏会被其它工具栏覆盖,使用ActionMode。例如:当用户选择Activity的一个或多个项,,。尽管这个UI或许在相同的位置出现。

开发者指南

如何使用工具栏的信息,包括如何添加工具项,模式等等,阅读:Action Bar 。

概述

嵌套类

类或接口类名或接口名描述
classActionBar.LayoutParams每个子布局与操作栏的定制的ActionBar相关的信息。
interfaceActionBar.OnMenuVisibilityListenerActionBar显示或隐藏的时候产生的事件,使用这个监听器监听。
interfaceActionBar.OnNavigationListenerActionBar导航时间的监听器接口。
classActionBar.TabActionBar里的选卡。
interfaceActionBar.TabListener当一个选卡获得焦点、失去焦点、添加、移除的时候,所需的回调函数


类型类型名描述
intDISPLAY_HOME_AS_UP把‘home’按钮作为一个返回上一级的按钮。
intDISPLAY_SHOW_CUSTOM如何设置了,就显示定制的界面
intDISPLAY_SHOW_HOME在ActionBar里显示‘home’,留出空间来显示其它的导航元素。
intDISPLAY_SHOW_TITLE如果有,显示Activity的标题和子标题
intDISPLAY_USE_LOGO如果有,使用logo代替图标
intNAVIGATION_MODE_LIST列出导航模式
intNAVIGATION_MODE_STANDARD标准导航模式
intNAVIGATION_MODE_TABS选卡导航模式

常量

public static final int DISPLAY_HOME_AS_UP

Since: API Level 11

显示一个“home”来暗示这是一个“up”。例如:在左边显示一个箭头来表示选中这个动作。

如果需要在ActionBar里使用“home”来返回上一级而不是返回到最开始的界面,就设置这个域。设置了这个域就隐式的禁用home/up按钮。阅读setHomeButtonEnabled(boolean)。

参考

• setDisplayOptions(int)

• setDisplayOptions(int, int)

常量值:4 (0x00000004)

public static final int DISPLAY_SHOW_CUSTOM

Since: API Level 11

如果设置就显示定制的视图。

参考

• setCustomView(View)

• setDisplayOptions(int)

• setDisplayOptions(int, int)

常量值:16 (0x00000010)


public static final int DISPLAY_SHOW_HOME

Since: API Level 11

在ActionBar里显示‘home’,留出更多的空间来显示其它导航的控件。包括logo和图标。

参考

• setDisplayOptions(int)

• setDisplayOptions(int, int)

常量值: 2 (0x00000002)

public static final int DISPLAY_SHOW_TITLE

Since: API Level 11

显示Activity的标题和子标题

参考

• setTitle(CharSequence)

• setTitle(int)

• setSubtitle(CharSequence)

• setSubtitle(int)

• setDisplayOptions(int)

• setDisplayOptions(int, int)

常量值: 8 (0x00000008)


public static final int DISPLAY_USE_LOGO

Since: API Level 11

如果有,使用logo代替图标。这个域使用适合的导航模式来适应宽的logo(比标准的图标宽)

参考

• setDisplayOptions(int)

• setDisplayOptions(int, int)

常量值: 1 (0x00000001)


public static final int NAVIGATION_MODE_LIST

Since: API Level 11

导航模式列表。代替静态的文本模式。例如:显示一个下拉列表。

常量值: 1 (0x00000001)


public static final int NAVIGATION_MODE_STANDARD

Since: API Level 11

标准导航模式。由一个logo或图标和标题,还有一个可选的子标题。点击这些元素会派送一个onOptionsItemSelected给主Activity,包括菜单项的ID由一个标识或图标。

常量值: 0 (0x00000000)


public static final int NAVIGATION_MODE_TABS

Since: API Level 11

选卡导航模式。替代文本导航模式,它显示一系列的选卡来实现导航。

常量值: 2 (0x00000002)


公共函数

public abstract void addOnMenuVisibilityListener (ActionBar.OnMenuVisibilityListener listener)

Since: API Level 11

响应菜单可视化属性改变的监听器。

参数

Listener  	新的监听器


public abstract void addTab (ActionBar.Tab tab, boolean setSelected)

Since: API Level 11

添加选卡,会添加到最后

参数

tab	        选卡
setSelected	添加的选卡处于被选中就为ture。


public abstract void addTab (ActionBar.Tab tab, int position)

Since: API Level 11

指定选卡的位置插入选卡。如果是第一个选卡,默认是选中状态。

参数

Tab        选卡
Position   选卡的位置


public abstract void addTab (ActionBar.Tab tab, int position, boolean setSelected)

Since: API Level 11

可以指定位置插入选卡

参数

Tab            选卡
Position       选卡的位置
setSelected    是否处于选中状态,如果是为ture


public abstract void addTab (ActionBar.Tab tab)

Since: API Level 11

添加选卡。添加到列表的最后。如果是第一个选卡,哪么它默认处于选中状态。

参数

tab  选卡


public abstract View getCustomView ()

Since: API Level 11

返回值

当前用户自定义的视图


public abstract int getDisplayOptions ()

Since: API Level 11

返回值

当前显示项的集合


public abstract int getHeight ()

Since: API Level 11

获取当前ActionBar的高度

返回值

ActionBar的高度


public abstract int getNavigationItemCount ()

Since: API Level 11

导航项的数量。

返回值

导航项的数量


public abstract int getNavigationMode ()

Since: API Level 11

当前导航模式,可以是以下的值:

•	NAVIGATION_MODE_STANDARD
•	NAVIGATION_MODE_LIST
•	NAVIGATION_MODE_TABS

返回值

当前导航模式


public abstract int getSelectedNavigationIndex ()

Since: API Level 11

选中项的位置

返回值

选项的位置


public abstract ActionBar.Tab getSelectedTab ()

Since: API Level 11

返回当前选中的标签,当前需要是标签导航模式,并且至少要有一个标签。

返回值

当前选中的标签或null


public abstract CharSequence getSubtitle ()

Since: API Level 11

标准模式下ActionBar的子标题。如果getNavigationMode()没有返回NAVIGATION_MODE_STANDARD就返回null

返回值

•	当前ActionBar的子标题或是null。


public abstract ActionBar.Tab getTabAt (int index)

Since: API Level 11

指定索引的标签

参数

index    索引值的范围是0—


public abstract int getTabCount ()

Since: API Level 11

在ActionBar里注册的选卡的数量

返回值

•	选卡数量


public Context getThemedContext ()

Since: API Level 14

返回ActionBar里和创建的视图匹配的主题的Context。如果扩大或实例化自定义ActionBar里的视图,你使用这个函数来返回Context。(包括导航模式的适配器。)

返回值

• 	创建视图的主题Context。


public abstract CharSequence getTitle ()

Since: API Level 11

标准模式下ActionBar的标题。如果getNavigationMode()函数没有返回NAVIGATION_MODE_STANDARD就返回null。

返回值

ActionBar的标题或null。


public abstract void hide ()

Since: API Level 11

如果ActionBar是显示的就隐藏。如果窗口没有FEATURE_ACTION_BAR_OVERLAY属性,就会重置窗口来产生新的空间以便显示ActionBar。

你可以让ActionBar使用覆盖属性通过来隐藏ActionBar,而不是直接调用这个函数。隐藏ActionBar通过系统的UI标识可以让ActionBar更加无缝的隐藏。


public abstract boolean isShowing ()

Since: API Level 11

返回值

如何ActionBar是显示的返回true。否则是false。


public abstract ActionBar.Tab newTab ()

Since: API Level 11

创建返回一个新的ActionBar。这个选卡不包含于ActionBar里,除非选卡被添加。

通常,选卡用于切换Fragment 对象。如下是实现选卡的代码:

这里有代码

返回值

•	新的选卡

参阅

•	addTab(Tab)


public abstract void removeAllTabs ()

Since: API Level 11

移除选卡并且当前的选卡设置为未选中。


public abstract void removeOnMenuVisibilityListener (ActionBar.OnMenuVisibilityListenerlistener)

Since: API Level 11

移除一个菜单的可视监听器。这个监听器不再接收菜单的可视化变化。

参数

listener  需要移除的监听器


public abstract void removeTab (ActionBar.Tab tab)

Since: API Level 11

从ActionBar里移除选卡。如果移除选卡是处于选中状态,就会反选并且选中另一个选卡。

参数

tab 需要移除的选卡


public abstract void removeTabAt (int position)

Since: API Level 11

移除选卡。如果移除选卡是处于选中状态,就会反选并且选中另一个选卡。

参数

position需要移除指定位置的选卡


public abstract void selectTab (ActionBar.Tab tab)

Since: API Level 11

选中指定的选卡。如果ActionBar没有,就会添加一个。

注意:如果你想通过索引选择,使用函数setSelectedNavigationItem(int)。

参数

tab选中的选卡


public abstract void setBackgroundDrawable (Drawable d)

Since: API Level 11

设置ActionBar的背景。用于主ActionBar。

参数

d	背景

参阅

•	setStackedBackgroundDrawable(Drawable)
•	setSplitBackgroundDrawable(Drawable)


public abstract void setCustomView (int resId)

Since: API Level 11

设置ActionBar为自定义的导航模式,提供一个自定义的视图。

在程序的图标和任何动作按钮之间显示自定义的导航视图,或许使用任何可用的空间。自定义导航模式通常是一个浏览器,它包含自动填充地址的控件,或其它没有提供转换导航模式的导航机制。

设置显示选项DISPLAY_SHOW_CUSTOM可以控制自定义视图被显示。

参数

resId	填充ActionBar布局的资源ID

参阅

•	setDisplayOptions(int, int)



public abstract void setCustomView (View view)

Since: API Level 11

设置ActionBar为自定义模式,提供一个自定义的视图。视图在程序的图标和任何动作按钮之间,也可以使用任何可用空间。通常用于如:一个浏览器,包括一个自动填充的地址栏。

参数

view	ActionBar里自定义模式的视图



public abstract void setCustomView (View view, ActionBar.LayoutParams layoutParams)

Since: API Level 11

视图在程序图标和任何动作按钮之间出现,也可以使用任何空间。通常用于如:一个浏览器,包括一个自动填充的地址栏。

需要设置显示选项DISPLAY_SHOW_CUSTOM。

参数

view	ActionBar里的自定义导航模式
layoutParams	自定义视图以什么布局显示在ActionBar里

参阅

•	setDisplayOptions(int, int)


public abstract void setDisplayHomeAsUpEnabled (boolean showHomeAsUp)

Since: API Level 11

home是否作为up使用。如果点击‘home’返回上一级界面而不是主界面,就设置为true。一次设置多个显示模式阅读setDisplayOptions函数。

参数showHomeAsUp点击‘home’返回上一级界面而不是app的主界面,就设置为true

参数

•	setDisplayOptions(int)
•	setDisplayOptions(int, int)


public abstract void setDisplayOptions (int options, int mask)

Since: API Level 11

设置显示模式。通过掩码指定。可以通过位选项修改所有的模式,阅读 setDisplayOptions(int)。

例如:setDisplayOptions(0, DISPLAY_SHOW_HOME)会禁用选项DISPLAY_SHOW_HOME 。setDisplayOptions(DISPLAY_SHOW_HOME, DISPLAY_SHOW_HOME | DISPLAY_USE_LOGO)会启用DISPLAY_SHOW_HOME和 DISPLAY_USE_LOGO。

参数

options	在ActionBar里,通过常量来定义结合位
mask	声明显示选项的位掩码


public abstract void setDisplayOptions (int options)

Since: API Level 11

设置显示选项。一次修改所有的显示选项。修改有限子集显示选项,阅读setDisplayOptions(int, int)。

参数

options ActionBar里通过DISPLAY_常量定义的结合位。


public abstract void setDisplayShowCustomEnabled (boolean showCustom)

Since: API Level 11

如果设置,自定义视图显示。

如果一次设置多个显示选项,参阅setDisplayOptions函数。

参数

showCustom	如果当前自定义视图需要显示,就为true。否则false。

参考

•	setDisplayOptions(int)
•	setDisplayOptions(int, int)



public abstract void setDisplayShowHomeEnabled (boolean showHome)

Since: API Level 11

home按钮是否在ActionBar里显示。home作为ActionBar的图标或logo显示。

如果一次设置多个显示选项,参阅setDisplayOptions函数。

参数

showHome	如果显示home,否则false。

参阅

•	setDisplayOptions(int)
•	setDisplayOptions(int, int)


public abstract void setDisplayShowTitleEnabled (boolean showTitle)

Since: API Level 11

Activity的标题或子标题是否显示。

如果一次设置多个显示选项,参阅setDisplayOptions函数。

参数

showTitle	如果显示标题或子标题就为true。

参阅

•	setDisplayOptions(int)
•	setDisplayOptions(int, int)



public abstract void setDisplayUseLogoEnabled (boolean useLogo)

Since: API Level 11

是否显示Activity的logo而不是图标。logo通常更宽,更细腻。

如果一次设置多个显示选项,参阅setDisplayOptions函数。

参数

useLogo	如果使用logo为true,使用图标为false。

参阅

•	setDisplayOptions(int)
•	setDisplayOptions(int, int)



public void setHomeButtonEnabled (boolean enabled)

Since: API Level 14

在ActionBar的正中是否显示‘home’。(注意:这是应用程序的home或上一级按钮,不是系统的主界面按钮。)

在API14以前,默认是true,程序需要调用这函数来启用home/上一级。设置DISPLAY_HOME_AS_UP显示选项将自动地启用主界面按钮。

参数

enabled启用home按钮为true,否则为false。


public abstract void setIcon (Drawable icon)

Since: API Level 14

使用图标来显示home按钮。ActionBar使用一个指定风格的图标或是Activity的默认图标。home按钮是否通过显示选项DISPLAY_USE_LOGO显示一个图标或是logo。

参数

icon	图标

参阅

•	setDisplayUseLogoEnabled(boolean)
•	setDisplayShowHomeEnabled(boolean)


public abstract void setIcon (int resId)

Since: API Level 14

在home域现实的图标。ActionBar使用一个指定风格的图标或是Activity的默认图标。home按钮是否通过显示选项DISPLAY_USE_LOGO显示一个图标或是logo。

参数

resId	图标的资源ID

参阅

•	setDisplayUseLogoEnabled(boolean)
•	setDisplayShowHomeEnabled(boolean)


public abstract void setListNavigationCallbacks (SpinnerAdapter adapter,ActionBar.OnNavigationListener callback)

Since: API Level 11

列表导航模式下设置适配器和回调。适配器将为列表的当前选中项提供视图。(这将会显示的不同。)当用户改变当前列表选项会通过OnNavigationListener通知用户。

参数

adapter 提供显示当前模式域和弹出下拉菜单的视图
callback 当用户选择导航项的时候,OnNavigationListener将接收到这个事件.


public abstract void setLogo (int resId)

Since: API Level 14

‘home’域显示的logo。ActionBar使用指定的风格的logo或是Activity的默认logo。‘home’域是否显示图标或logo通过显示选项DISPLAY_USE_LOGO来控制。

参数

resId	logo资源的ID

参阅

•	setDisplayUseLogoEnabled(boolean)
•	setDisplayShowHomeEnabled(boolean)



public abstract void setLogo (Drawable logo)

Since: API Level 14

‘home’域显示的logo。ActionBar使用指定的风格的logo或是Activity的默认logo。‘home’域是否显示图标或logo通过显示选项DISPLAY_USE_LOGO来控制。

参数

logo	需要显示的logo

参阅

•	setDisplayUseLogoEnabled(boolean)
•	setDisplayShowHomeEnabled(boolean)


public abstract void setNavigationMode (int mode)

Since: API Level 11

设置当前导航模式

参数

Mode	新模式

参阅

•	NAVIGATION_MODE_STANDARD
•	NAVIGATION_MODE_LIST
•	NAVIGATION_MODE_TABS


public abstract void setSelectedNavigationItem (int position)

Since: API Level 11

选中指定位置的导航项。

参数

position 选中指定位置的选项


public void setSplitBackgroundDrawable (Drawable d)

Since: API Level 14

设置ActionBar的分隔背景。在分隔背景上包含菜单如:动作按钮、设备配置。

你可以通过uiOptions来启用分隔ActionBar。参数

d	d  拆分条的背景



public void setStackedBackgroundDrawable (Drawable d)

Since: API Level 14

设置ActionBar的重叠背景。一些设备或配置的时候,会在第二行里显示重叠的背景。

参数

d 重叠的背景


public abstract void setSubtitle (int resId)

Since: API Level 11

ActionBar的子标题。除非 DISPLAY_SHOW_TITLE被设置了,子标题才会显示。

参数

resId	子标题的资源ID

参阅

•	setSubtitle(CharSequence)
•	setDisplayOptions(int, int)


public abstract void setSubtitle (CharSequence subtitle)

Since: API Level 11

ActionBar的子标题。除非 DISPLAY_SHOW_TITLE被设置了,子标题才会显示。不显示子标题就设置为null。

参数

subtitle	子标题

参阅

•	setSubtitle(int)
•	setDisplayOptions(int, int)


public abstract void setTitle (int resId)

Since: API Level 11

设置ActionBar的标题,除非 DISPLAY_SHOW_TITLE被设置了,标题才会显示。

参数

resId	标题资源的ID。

参阅

•	setTitle(CharSequence)
•	setDisplayOptions(int, int)


public abstract void setTitle (CharSequence title)

Since: API Level 11

设置ActionBar的标题,除非 DISPLAY_SHOW_TITLE被设置了,标题才会显示。

参数

title	标题

参阅:

•	setTitle(int)
•	setDisplayOptions(int, int)


public abstract void show ()

Since: API Level 11

如果当前的ActionBar没有显示给用户,就显示ActionBar。如果窗口没有属性FEATURE_ACTION_BAR_OVERLAY,那么就重置程序来产生一个新的可用空间。

如果你通过 View.SYSTEM_UI_FLAG_FULLSCREEN隐藏了ActionBar,你需要直接调用函数。

除非另有说明,这个content是遵守Apache 2.0。更多的细节和限制,阅读 Content License。


译者注 1、格式还没有调整 2、代码没有添加



共有 0人喜欢  共 0条评论
登录 社区
0条评论
0次被喜欢
 
        表情
  • 默认表情
  • 阿狸
    140
    还没有评论内容
    更多热评文章
    • 对“overScrollBy”的搜索结果
    • 对“KeyEvent”的搜索结果
    • Android.graphics.Bitmap
    • 对“onKeyUp”的搜索结果
            表情
    • 默认表情
    • 阿狸
      140
          
       
       
          
      wikidroid.sinaapp.com
      33
      评论数
      32
      喜欢数
      22
      用户数
      数据正在加载中...
      社会化帐号登录

      点击按钮,使用社交帐号评论

      作为游客留言

      Email *

      昵  称

      顶并分享到:
      新浪微博
      新浪微博
      新浪微博
      个人工具
      名字空间
      变换
      动作
      • 0
        点赞
      • 5
        收藏
        觉得还不错? 一键收藏
      • 0
        评论
      评论
      添加红包

      请填写红包祝福语或标题

      红包个数最小为10个

      红包金额最低5元

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

      抵扣说明:

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

      余额充值