本文主要是介绍ActionBar各种属性的详细解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
ActionBar
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 。
概述
嵌套类
类或接口 | 类名或接口名 | 描述 |
---|---|---|
class | ActionBar.LayoutParams | 每个子布局与操作栏的定制的ActionBar相关的信息。 |
interface | ActionBar.OnMenuVisibilityListener | ActionBar显示或隐藏的时候产生的事件,使用这个监听器监听。 |
interface | ActionBar.OnNavigationListener | ActionBar导航时间的监听器接口。 |
class | ActionBar.Tab | ActionBar里的选卡。 |
interface | ActionBar.TabListener | 当一个选卡获得焦点、失去焦点、添加、移除的时候,所需的回调函数 |
域
类型 | 类型名 | 描述 |
---|---|---|
int | DISPLAY_HOME_AS_UP | 把‘home’按钮作为一个返回上一级的按钮。 |
int | DISPLAY_SHOW_CUSTOM | 如何设置了,就显示定制的界面 |
int | DISPLAY_SHOW_HOME | 在ActionBar里显示‘home’,留出空间来显示其它的导航元素。 |
int | DISPLAY_SHOW_TITLE | 如果有,显示Activity的标题和子标题 |
int | DISPLAY_USE_LOGO | 如果有,使用logo代替图标 |
int | NAVIGATION_MODE_LIST | 列出导航模式 |
int | NAVIGATION_MODE_STANDARD | 标准导航模式 |
int | NAVIGATION_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、代码没有添加
这篇关于ActionBar各种属性的详细解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!