public class ActionBarDrawerToggle
extends Object
implements DrawerLayout.DrawerListener
java.lang.Object | |
↳ | android.support.v7.app.ActionBarDrawerToggle |
该类提供了一种方便的方式,将 DrawerLayout
和框架 ActionBar
的功能绑定在一起,以实现抽屉导航的推荐设计。
要使用 ActionBarDrawerToggle
,请在您的活动中创建一个并调用以下与您的活动回调对应的方法:
在您的 Activity
的 onPostCreate
拨打 syncState()
,以便在 onRestoreInstanceState
发生后使指示符与链接的DrawerLayout的状态同步。
ActionBarDrawerToggle
可以直接作为 DrawerLayout.DrawerListener
,或者如果您已经提供了自己的侦听器,请从您自己的每个侦听器方法中调用。
您可以通过在ActionBar主题中定义 drawerArrowStyle
来自定义动画切换。
Nested classes |
|
---|---|
interface |
ActionBarDrawerToggle.Delegate
|
interface |
ActionBarDrawerToggle.DelegateProvider 允许实现Activity返回 |
Public constructors |
|
---|---|
ActionBarDrawerToggle(Activity activity, DrawerLayout drawerLayout, int openDrawerContentDescRes, int closeDrawerContentDescRes) 构建一个新的ActionBarDrawerToggle。 |
|
ActionBarDrawerToggle(Activity activity, DrawerLayout drawerLayout, Toolbar toolbar, int openDrawerContentDescRes, int closeDrawerContentDescRes) 用工具栏构建一个新的ActionBarDrawerToggle。 |
Public methods |
|
---|---|
View.OnClickListener |
getToolbarNavigationClickListener() 返回导航图标点击事件的回退监听器。 |
boolean |
isDrawerIndicatorEnabled() |
void |
onConfigurationChanged(Configuration newConfig) 此方法应该永远在你被称为 |
void |
onDrawerClosed(View drawerView) |
void |
onDrawerOpened(View drawerView) |
void |
onDrawerSlide(View drawerView, float slideOffset) |
void |
onDrawerStateChanged(int newState) |
boolean |
onOptionsItemSelected(MenuItem item) 此方法应该由你叫 |
void |
setDrawerIndicatorEnabled(boolean enable) 启用或禁用抽屉指示器。 |
void |
setHomeAsUpIndicator(Drawable indicator) 设置向上指示器以在抽屉指示器未启用时显示。 |
void |
setHomeAsUpIndicator(int resId) 设置向上指示器以在抽屉指示器未启用时显示。 |
void |
setToolbarNavigationClickListener(View.OnClickListener onToolbarNavigationClickListener) DrawerToggle使用工具栏构建时,会在导航图标上设置点击侦听器。 |
void |
syncState() 将抽屉指示灯/可供件状态与链接的DrawerLayout同步。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
|
From interface android.support.v4.widget.DrawerLayout.DrawerListener
|
ActionBarDrawerToggle (Activity activity, DrawerLayout drawerLayout, int openDrawerContentDescRes, int closeDrawerContentDescRes)
构建一个新的ActionBarDrawerToggle。
给定的 Activity
将被链接到指定的 DrawerLayout
,其操作栏的向上按钮将被设置为自定义可绘制。
该抽屉在抽屉关闭时显示汉堡图标,在抽屉打开时显示箭头。 它在抽屉打开时在这两个状态之间动画。
必须提供字符串资源来描述无障碍服务的打开/关闭抽屉动作。
Parameters | |
---|---|
activity |
Activity : The Activity hosting the drawer. Should have an ActionBar. |
drawerLayout |
DrawerLayout : The DrawerLayout to link to the given Activity's ActionBar |
openDrawerContentDescRes |
int : A String resource to describe the "open drawer" action for accessibility |
closeDrawerContentDescRes |
int : A String resource to describe the "close drawer" action for accessibility |
ActionBarDrawerToggle (Activity activity, DrawerLayout drawerLayout, Toolbar toolbar, int openDrawerContentDescRes, int closeDrawerContentDescRes)
用工具栏构建一个新的ActionBarDrawerToggle。
给定的Activity
将被链接到指定的DrawerLayout
,并且工具栏的导航图标将被设置为自定义绘图。 使用此构造函数将设置工具栏的导航点击侦听器,以便在单击它时切换抽屉。
该抽屉在抽屉关闭时显示汉堡图标,在抽屉打开时显示箭头。 它在抽屉打开时在这两个状态之间动画。
必须提供字符串资源来描述无障碍服务的打开/关闭抽屉动作。
如果您将工具栏设置为活动的ActionBar,请使用 ActionBarDrawerToggle(Activity, DrawerLayout, int, int)
。
Parameters | |
---|---|
activity |
Activity : The Activity hosting the drawer. |
drawerLayout |
DrawerLayout : The DrawerLayout to link to the given Activity's ActionBar |
toolbar |
Toolbar : The toolbar to use if you have an independent Toolbar. |
openDrawerContentDescRes |
int : A String resource to describe the "open drawer" action for accessibility |
closeDrawerContentDescRes |
int : A String resource to describe the "close drawer" action for accessibility |
View.OnClickListener getToolbarNavigationClickListener ()
返回导航图标点击事件的回退监听器。
Returns | |
---|---|
View.OnClickListener |
The click listener which receives Navigation click events from Toolbar when drawer indicator is disabled. |
boolean isDrawerIndicatorEnabled ()
Returns | |
---|---|
boolean |
true if the enhanced drawer indicator is enabled, false otherwise |
void onConfigurationChanged (Configuration newConfig)
此方法应该永远在你被称为 Activity
的 onConfigurationChanged
方法。
Parameters | |
---|---|
newConfig |
Configuration : The new configuration |
void onDrawerClosed (View drawerView)
DrawerLayout.DrawerListener
回调方法。 如果您不直接使用ActionBarDrawerToggle实例作为DrawerLayout的侦听器,则应该从您自己的侦听器对象调用此方法。
Parameters | |
---|---|
drawerView |
View : Drawer view that is now closed |
void onDrawerOpened (View drawerView)
DrawerLayout.DrawerListener
回调方法。 如果您不直接使用ActionBarDrawerToggle实例作为DrawerLayout的侦听器,则应该从您自己的侦听器对象调用此方法。
Parameters | |
---|---|
drawerView |
View : Drawer view that is now open |
void onDrawerSlide (View drawerView, float slideOffset)
DrawerLayout.DrawerListener
回调方法。 如果您不直接使用ActionBarDrawerToggle实例作为DrawerLayout的侦听器,则应该从您自己的侦听器对象调用此方法。
Parameters | |
---|---|
drawerView |
View : The child view that was moved |
slideOffset |
float : The new offset of this drawer within its range, from 0-1 |
void onDrawerStateChanged (int newState)
DrawerLayout.DrawerListener
回调方法。 如果您不直接使用ActionBarDrawerToggle实例作为DrawerLayout的侦听器,则应该从您自己的侦听器对象调用此方法。
Parameters | |
---|---|
newState |
int : The new drawer motion state |
boolean onOptionsItemSelected (MenuItem item)
此方法应该由你叫Activity
的onOptionsItemSelected
方法。 如果它返回true,那么你的onOptionsItemSelected
方法应该返回true并跳过进一步处理。
Parameters | |
---|---|
item |
MenuItem : the MenuItem instance representing the selected menu item |
Returns | |
---|---|
boolean |
true if the event was handled and further processing should not occur |
void setDrawerIndicatorEnabled (boolean enable)
启用或禁用抽屉指示器。 该指示器默认为启用。
当指示器被禁用时, ActionBar
将恢复显示由 android.R.attr.homeAsUpIndicator
属性中的 android.R.attr.homeAsUpIndicator
主题提供的 Activity
指示符,而不是动画抽屉字形。
Parameters | |
---|---|
enable |
boolean : true to enable, false to disable |
void setHomeAsUpIndicator (Drawable indicator)
设置向上指示器以在抽屉指示器未启用时显示。
如果您将 null
传递给此方法,则将使用主题的默认可绘制。
Parameters | |
---|---|
indicator |
Drawable : A drawable to use for the up indicator, or null to use the theme's default |
void setHomeAsUpIndicator (int resId)
设置向上指示器以在抽屉指示器未启用时显示。
如果您将0传递给此方法,则将使用主题的默认drawable。
Parameters | |
---|---|
resId |
int : Resource ID of a drawable to use for the up indicator, or 0 to use the theme's default |
void setToolbarNavigationClickListener (View.OnClickListener onToolbarNavigationClickListener)
DrawerToggle使用工具栏构建时,会在导航图标上设置点击侦听器。 如果您想在DrawerToggle禁用时听取导航图标上的点击( setDrawerIndicatorEnabled(boolean)
,则应该与您的监听器一起调用此方法,并且当抽屉指示器被禁用时,DrawerToggle会将单击事件转发给该监听器。
Parameters | |
---|---|
onToolbarNavigationClickListener |
View.OnClickListener
|
void syncState ()
将抽屉指示灯/可供件状态与链接的DrawerLayout同步。
这应该从您的Activity
的onPostCreate
方法中调用,以便在DrawerLayout的实例状态恢复之后进行同步,以及在状态可能已经发生分歧的任何其他时间,以便不通知ActionBarDrawerToggle。 (例如,如果您在一段时间内停止转发相应的抽屉事件。)