关于Android使用ActionBarDrawerToggle时导航图标没有动画效果
2017-04-13 14:22
573 查看
今天在查找DrawerLayout的自定义菜单的实现时,偶然发现了ActionBarDrawerToggle这个东西。这个类的用处是,在DrawerLayout被操作,如打开,关闭,或者滑动等行为时接收反馈而执行一定的操作。还有一个功能就是当导航页面切入切出时,导航图标实现动画效果。用过google play的同学应该见过,当左边的导航菜单被唤出的时候,左上角的三道杠的图标会通过动画变成一个向左的箭头,关闭菜单的时候又会从箭头变为三道杠。
很炫酷有木有!于是楼主去找了下攻略。。啊,是教程,知道了大略的做法,这里直接把重要代码贴出来吧
注意对象自己初始化,drawer_open那两个是字符串引用来的,addDrawerListener原来对应的是setDrawerListener,不过现在google已经废弃那个方法了,请使用现在这个。照着做了下,发现不对啊,根本没有动画效果啊!!不过监听导航菜单打开和关闭里面的话,确实是已经成功执行了。在google找了一下,终于是找到问题解决方案了,主要还是drawerToggle.syncState();这句话,不过这样直接用没效果,正确用法是重写onPostCreate方法,如下:
顺带说明,简单的让导航菜单可见的话,默认的是一个箭头,有的同学可能会觉得是不是要先用一个三道杠图标改掉这个图标啊?其实是没有必要的,只要能实现动画效果,箭头图标会自动改成三道杠的。
以上只是解决方法的其中一种,还有一种方法就不贴出来了,有兴趣的同学请自行查看。给出解决楼主问题的传送门:Drawer toggle not working as expected
(icon remains the same)
很炫酷有木有!于是楼主去找了下攻略。。啊,是教程,知道了大略的做法,这里直接把重要代码贴出来吧
private Toolbar toolbar; private DrawerLayout mDrawer; private ActionBarDrawerToggle drawerToggle; drawerToggle = new ActionBarDrawerToggle(this,mDrawer,toolbar,R.string.drawer_open,R.string.drawer_close){ @Override public void onDrawerOpened(View drawerView) { super.onDrawerOpened(drawerView); invalidateOptionsMenu(); } @Override public void onDrawerClosed(View drawerView) { super.onDrawerClosed(drawerView); invalidateOptionsMenu(); } }; mDrawer.addDrawerListener(drawerToggle); drawerToggle.syncState();
注意对象自己初始化,drawer_open那两个是字符串引用来的,addDrawerListener原来对应的是setDrawerListener,不过现在google已经废弃那个方法了,请使用现在这个。照着做了下,发现不对啊,根本没有动画效果啊!!不过监听导航菜单打开和关闭里面的话,确实是已经成功执行了。在google找了一下,终于是找到问题解决方案了,主要还是drawerToggle.syncState();这句话,不过这样直接用没效果,正确用法是重写onPostCreate方法,如下:
@Override protected void onPostCreate(@Nullable Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); drawerToggle.syncState(); }再次运行,成功看到导航图标的动画效果了!
顺带说明,简单的让导航菜单可见的话,默认的是一个箭头,有的同学可能会觉得是不是要先用一个三道杠图标改掉这个图标啊?其实是没有必要的,只要能实现动画效果,箭头图标会自动改成三道杠的。
以上只是解决方法的其中一种,还有一种方法就不贴出来了,有兴趣的同学请自行查看。给出解决楼主问题的传送门:Drawer toggle not working as expected
(icon remains the same)
相关文章推荐
- 用Android自带的DrawerLayout和ActionBarDrawerToggle实现侧滑效果
- Android控件(1)--ActionBarDrawerToggle、DrawerLayout、ActionBar 使用说明
- Android程序开发之使用Design包实现QQ动画侧滑效果和滑动菜单导航
- Android中DrawerLayout和ActionBarDrawerToggle 的三种使用方式
- Android中的动画效果学习之二---Tween动画(使用XML文件进行配置动画效果)
- Android中使用Animation实现控件的动画效果以及Interpolator和AnimationListener的使用
- 关于android应用图标没有改变问题。
- 【WP7】关于WrapPanel的使用和动画效果
- 设置了“在桌面上为图标标签使用阴影“却没有效果,如何解决。
- Android中使用Animation实现控件的动画效果以及Interpolator和AnimationListener的使用
- 使用CSS3 Translation为社会化图标添加动画效果
- Android中使用Animation实现控件的动画效果以及Interpolator和AnimationListener的使用
- Android中使用Animation实现控件的动画效果以及Interpolator和AnimationListener的使用
- Android动画---如何正确使用平移动画(关于fillBefore和fillAfter的一点说明)(转载)
- Android Animation Tween动画效果的使用
- android Tween Animations(动画效果-代码实现)的使用
- android 初级动画效果XML配置与代码使用
- Android控件的动画效果的实现及其AnimationListener和Interpolator的使用方法
- android Tween Animations(动画效果-XML文件实现)的使用