ActionBarDrawerToggle 使用小结

本文详细介绍了如何使用ActionBarDrawerToggle配合DrawerLayout实现Android应用中的导航抽屉功能,包括改变返回图标、动画效果及监听状态变化。特别强调了在onPostCreate()和onConfigurationChanged()方法中调用ActionBarDrawerToggle的必要性,以及如何在构造方法中初始化。同时,文章还讨论了与back键的交互,以及如何避免在Drawer打开时触发Activity的onBackPressed函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ActionBarDrawerToggle  是 DrawerLayout.DrawerListener实现。

和 NavigationDrawer 搭配使用,推荐用这个方法,符合Android design规范。
作用:
1.改变android.R.id.home返回图标。
2.Drawer拉出、隐藏,带有android.R.id.home动画效果。
3.监听Drawer拉出、隐藏;

做法,参照 NagatitionDrawer Demo。
重点在于:

/**
  * When using the ActionBarDrawerToggle, you must call it during
  * onPostCreate() and onConfigurationChanged()...
  */
 @Override
 protected void onPostCreate(Bundle savedInstanceState)
 {
  super.onPostCreate(savedInstanceState);
  // Sync the toggle state after onRestoreInstanceState has occurred.
  mDrawerToggle.syncState();
 }
 @Override
 public void onConfigurationChanged(Configuration newConfig)
 {
  super.onConfigurationChanged(newConfig);
  // Pass any configuration change to the drawer toggls
  mDrawerToggle.onConfigurationChanged(newConfig);
 }

以及 mDrawerToggle 的初始构造方法
mDrawerToggle = new ActionBarDrawerToggle(this, /* host Activity */
  mDrawerLayout, /* DrawerLayout object */
   R.drawable.ic_drawer, /* nav drawer image to replace 'Up' caret */
  R.string.drawer_open, /* "open drawer" description for accessibility */
  R.string.drawer_close /* "close drawer" description for accessibility */
  )
最后不要忘了
mDrawerLayout. setDrawerListener(mDrawerToggle);


问题解答链接


back键联系:

在使用Support包中的  Navigation Drawer 的时候(  Android官方终于支持 Navigation Drawer(导航抽屉)模式   ),如果点击BACK键,DrawerLayout 会检测当前Drawer是否打开,如果打开则触发关闭drawer的操作。 也就是说:在Drawer打开的时候点击BACK键,Activity的onBackPressed 函数不会触发。

Read more: http://blog.chengyunfeng.com/?p=526#ixzz34CMSkz8j


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值