android怎么实现上滑屏幕隐藏底部菜单栏

  介绍

这篇文章主要介绍android怎么实现上滑屏幕隐藏底部菜单栏,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

引用github上一个仿今日头条项目,项目地址:https://github.com/iMeiji/Toutiao,主要实现的功能是底部菜单栏随用户手势滑动而变化可见状态

 android怎么实现上滑屏幕隐藏底部菜单栏”> </p> <p> <img src= & lt; android.support.design.widget.CoordinatorLayout   ,android: layout_width=癿atch_parent"   ,android: layout_height=癿atch_parent"祝辞      ,& lt; include 布局=癅layout/toolbar"/比;      ,& lt; include 布局=癅layout/container"/比;      & lt; android.support.design.widget.BottomNavigationView   android:才能id=癅 + id/bottom_navigation"   ,,   android:才能layout_width=癿atch_parent"   android:才能layout_height=皐rap_content"   android:才能layout_alignParentBottom=皌rue"   android:才能layout_gravity=癰ottom"   android:才能背景=癅color/viewBackground"   应用程序才能:海拔=?6 dp"   应用程序才能:itemIconTint=癅drawable/nav_item_color_state"   应用程序才能:itemTextColor=癅drawable/nav_item_color_state"   应用程序才能:layout_behavior=癱om.meiji.toutiao.widget.behavior.BottomNavigationBehavior"   应用程序才能:菜单=癅menu/bottom_navigation_main"/祝辞

上面是activity_main的布局代码,第一个是菜单栏,第二个是内容界面,第三个是bottom.bottom导航栏这里采用是BottomNavigationView,具体用法不在介绍。

这里主要看一下BottomNavigationView的应用:layout_behavior属性,该属性是协调布局特有的。网上的一版用法是应用:layout_behavior=癅string/appbar_scrolling_view_behavior"

虽然表面上看是一个字符串,其实在里面调用的也是一个视图类。这次我们通过自定义这个行为类,实现底部菜单栏的显隐性。

java实现类

public  class  BottomNavigationBehavior  extends  CoordinatorLayout.Behavior, {   ,private  ObjectAnimator  outAnimator, inAnimator;   ,public  BottomNavigationBehavior (Context 上下文,AttributeSet  attrs), {   ,超级(上下文,attrs);   ,}      ,//垂直滑动   ,@Override   ,public  boolean  onStartNestedScroll (CoordinatorLayout  coordinatorLayout, View 孩子,,View  directTargetChild,, View 目标,int  nestedScrollAxes), {   ,return  nestedScrollAxes ==, ViewCompat.SCROLL_AXIS_VERTICAL;   ,}      ,@Override   ,public  void  onNestedPreScroll (CoordinatorLayout  coordinatorLayout, View 孩子,,View 目标,int  dx, int  dy,, int[],消耗),{   ,if  (dy 祝辞,0),{//,上滑隐藏   if 才能;(outAnimator ==, null), {   时间=outAnimator 才能;ObjectAnimator.ofFloat(孩子,,“translationY",, 0,, child.getHeight ());   outAnimator.setDuration才能(200);   ,,}   if 才能;(! outAnimator.isRunning (),,,, child.getTranslationY (), & lt;=, 0), {   outAnimator.start才能();   ,,}   ,}else  if  (dy  & lt;, 0),{//,下滑显示   if 才能;(inAnimator ==, null), {   时间=inAnimator 才能;ObjectAnimator.ofFloat(孩子,,“translationY",, child.getHeight (),, 0);   inAnimator.setDuration才能(200);   ,,}   if 才能;(! inAnimator.isRunning (),,,, child.getTranslationY(),在=,child.getHeight ()), {   inAnimator.start才能();   ,,}   ,}   ,}   }

这个类的就是刚刚那个应用:layout_behavior=癱om.meiji.toutiao.widget.behavior.BottomNavigationBehavior"属性标明的类,看起来很简单,继承了行为抽象类,然后实现了两个方法。来看一下源码如何解释:

 android怎么实现上滑屏幕隐藏底部菜单栏”> </p> <p> onStartNestedScroll:这个方法主要用于监听协调布局的子视图的滚动事件,当此方法返回真,表示要消耗此动作,继而执行下面的>以上是“android怎么实现上滑屏幕隐藏底部菜单栏”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道! <h2 class=android怎么实现上滑屏幕隐藏底部菜单栏