Android开发之DrawerLayout的仿QQ侧滑

编程入门 行业动态 更新时间:2024-10-11 05:27:03

Android开发之<a href=https://www.elefans.com/category/jswz/34/1725760.html style=DrawerLayout的仿QQ侧滑"/>

Android开发之DrawerLayout的仿QQ侧滑

在上一篇中我们提到了监听DrawerLayout,今天就带领大家解析DrawerLayout的监听,定制属于我们自己的DrawerLayout,然后完成QQ的侧滑栏功能!

效果图如下:


----------------------------------------分割线---------------------------------------------------------------

分析:如果想实现上述效果,需要内容部分跟着侧滑栏的滑动而滑动,而默认效果是侧滑栏遮住内容部分了,所以我们要想法拿到内容部分的View,然后再获取到侧滑的偏移量,然后根据重新计算的偏移量来动态平移内容部分的View,OK来代码实现一下:

drawerLayout.addDrawerListener(new DrawerLayout.DrawerListener() {@Overridepublic void onDrawerSlide(View drawerView, float slideOffset) {//滑动过程中不断回调 slideOffset:0~1View content = drawerLayout.getChildAt(0);View menu = drawerView;float scale = 1 - slideOffset;//1~0content.setTranslationX(menu.getMeasuredWidth() * (1 - scale));//0~width}@Overridepublic void onDrawerOpened(View drawerView) {}@Overridepublic void onDrawerClosed(View drawerView) {}@Overridepublic void onDrawerStateChanged(int newState) {}});

在这里再补充一句,监听DrawerLayout还有另一个方法,是drawerLayout.setDrawerListener(new ...);在新版中这个方法已经过时,Google已经不推荐使用,这是给出的原因:This inspection reports where deprecated code is used in the specified inspection scope,翻译下来就是:本检验报告,不合法的代码在指定的检验范围。有兴趣的童靴可以仔细翻看一下代码,这里不做过多深究!

正好我们可以利用这一点做toolbar的动画效果:

drawerLayout.setDrawerListener(drawerToggle);

----------------------------分割线----------------------------------------------------------------------

今天的任务比较简单,下节课继续讲解DrawerLayout与其他控件的搭配使用!

更多推荐

Android开发之DrawerLayout的仿QQ侧滑

本文发布于:2024-03-09 18:39:05,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1725759.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:DrawerLayout   Android   侧滑   QQ

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!