Most visited

Recently visited

Added in API level 14

ActionProvider

public abstract class ActionProvider
extends Object

java.lang.Object
   ↳ android.view.ActionProvider
Known Direct Subclasses


ActionProvider在单个组件中定义丰富的菜单交互。 ActionProvider可以生成操作视图以供在操作栏中使用,动态填充MenuItem的子菜单以及处理默认菜单项调用。

可以为MenuItem选择性地指定MenuItem并负责创建出现在ActionBar中的操作视图,以代替栏中的简单按钮。 当菜单项以不允许自定义操作视图的方式呈现时(例如在溢出菜单中),ActionProvider可以执行默认操作。

有两种方法可以使用操作提供者:

也可以看看:

Summary

Nested classes

interface ActionProvider.VisibilityListener

监听refreshVisibility()报告的可见性变化。

Public constructors

ActionProvider(Context context)

创建一个新的实例。

Public methods

boolean hasSubMenu()

确定此ActionProvider是否具有与其关联的子菜单。

boolean isVisible()

如果 overridesItemVisibility()返回true,则此方法的返回值将有助于确定此ActionProvider绑定到的 MenuItem的可见性。

abstract View onCreateActionView()

此方法在API级别16中已弃用。请使用onCreateActionView(MenuItem)

View onCreateActionView(MenuItem forItem)

由Android框架调用的工厂方法来创建新的操作视图。

boolean onPerformDefaultAction()

执行可选的默认操作。

void onPrepareSubMenu(SubMenu subMenu)

调用以为由此ActionProvider支持的菜单项准备相关的子菜单。

boolean overridesItemVisibility()

这种方法的结果,判断是否 isVisible()将由使用 MenuItem此ActionProvider必然会有助于确定其可见性。

void refreshVisibility()

如果此ActionProvider与菜单中的项目关联,请根据 overridesItemVisibility()isVisible()刷新该项目的可见性。

void setVisibilityListener(ActionProvider.VisibilityListener listener)

设置一个侦听器,当这个ActionProvider被覆盖的可见性发生变化时通知它。

Inherited methods

From class java.lang.Object

Public constructors

ActionProvider

Added in API level 14
ActionProvider (Context context)

创建一个新的实例。 ActionProvider类应始终实现一个构造函数,该构造函数从菜单XML中获取一个用于膨胀的Context参数。

Parameters
context Context: Context for accessing resources.

Public methods

hasSubMenu

Added in API level 14
boolean hasSubMenu ()

确定此ActionProvider是否具有与其关联的子菜单。

关联的子菜单将在操作视图不显示时显示。 在向onPrepareSubMenu(SubMenu)的呼叫onPerformDefaultAction()以及向用户显示子菜单之前,此提供者实例将接收到对onPrepareSubMenu(SubMenu)的呼叫。

Returns
boolean true if the item backed by this provider should have an associated submenu

isVisible

Added in API level 16
boolean isVisible ()

如果 overridesItemVisibility()返回true,则此方法的返回值将有助于确定此ActionProvider绑定的 MenuItem的可见性。

如果MenuItem的可见性被应用程序显式设置为false,则即使此方法返回true,MenuItem也不会显示。

Returns
boolean true if the MenuItem this ActionProvider is bound to is visible, false if it is invisible. The default implementation returns true.

onCreateActionView

Added in API level 14
View onCreateActionView ()

此方法在API级别16中已被弃用。
使用onCreateActionView(MenuItem)

由Android框架调用的工厂方法来创建新的操作视图。

此方法已被弃用,以支持onCreateActionView(MenuItem) 希望支持API 16之前的平台版本的新应用程序也应实现此方法以返回有效的操作视图。

Returns
View A new action view.

onCreateActionView

Added in API level 16
View onCreateActionView (MenuItem forItem)

由Android框架调用的工厂方法来创建新的操作视图。 此方法为给定的MenuItem返回一个新的操作视图。

如果您的ActionProvider实现覆盖已弃用的无参数过载onCreateActionView() ,建议您为运行API 16或更高版本的设备重写此方法,但可选。 默认实现调用onCreateActionView()以与为较旧平台版本编写的应用程序兼容。

Parameters
forItem MenuItem: MenuItem to create the action view for
Returns
View the new action view

onPerformDefaultAction

Added in API level 14
boolean onPerformDefaultAction ()

执行可选的默认操作。

对于放置在未显示为菜单项的操作提供者的情况,如果先前用于处理菜单选择的回调处理了该事件,则调用此方法。

菜单项选择按以下顺序处理:

默认实现不执行任何操作并返回false。

Returns
boolean

onPrepareSubMenu

Added in API level 14
void onPrepareSubMenu (SubMenu subMenu)

调用以为由此ActionProvider支持的菜单项准备相关的子菜单。

如果hasSubMenu()返回true,则在选择菜单项以准备用于呈现给用户的子菜单时将调用此方法。 应用程序可以使用它在显示之前创建或更改子菜单内容。

Parameters
subMenu SubMenu: Submenu that will be displayed

overridesItemVisibility

Added in API level 16
boolean overridesItemVisibility ()

这种方法的结果,判断是否 isVisible()将由使用 MenuItem此ActionProvider必然会有助于确定其可见性。

Returns
boolean true if this ActionProvider overrides the visibility of the MenuItem it is bound to, false otherwise. The default implementation returns false.

也可以看看:

refreshVisibility

Added in API level 16
void refreshVisibility ()

如果此ActionProvider与菜单中的项目相关联,请根据overridesItemVisibility()isVisible()刷新该项目的可见性。 如果overridesItemVisibility()返回false,则此调用将不起作用。

setVisibilityListener

Added in API level 16
void setVisibilityListener (ActionProvider.VisibilityListener listener)

设置一个侦听器,当这个ActionProvider被覆盖的可见性发生变化时通知它。 这应该只能由MenuItem实现使用。

Parameters
listener ActionProvider.VisibilityListener: listener to set

Hooray!