美文网首页
FloatingActionButton.Behavior

FloatingActionButton.Behavior

作者: 细雨么么 | 来源:发表于2019-11-21 10:24 被阅读0次
    package com.vortex.test;
    
    import android.content.Context;
    import android.support.annotation.NonNull;
    import android.support.design.widget.CoordinatorLayout;
    import android.support.design.widget.FloatingActionButton;
    import android.util.AttributeSet;
    import android.view.View;
    
    /**
     * Created by Administrator (chenPS) on 2019/11/21.
     */
    public class MyHehavior extends FloatingActionButton.Behavior {
    
      /** 构造方法必须得有
    */
        public MyHehavior() {
        }
    
        public MyHehavior(Context context, AttributeSet attrs) {
            super(context, attrs);
        }
      
    /**
    *竖直方向必须得有
    */
        @Override
        public boolean onStartNestedScroll(@NonNull CoordinatorLayout coordinatorLayout, @NonNull FloatingActionButton child, @NonNull View directTargetChild, @NonNull View target, int axes, int type) {
    
            return axes==CoordinatorLayout.SCROLL_AXIS_VERTICAL;
        }
    
        @Override
        public void onNestedScroll(@NonNull CoordinatorLayout coordinatorLayout,
                                   @NonNull final FloatingActionButton child,
                                   @NonNull View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed, int type) {
        //隐藏原来的hide是有问题的 不会再显示出来 调用setinvisible  而且可以在此处添加 show hide的监听
            if((dyConsumed>0||dyConsumed>0)&&child.getVisibility()==View.VISIBLE){
               child.hide(new FloatingActionButton.OnVisibilityChangedListener() {
                   @Override
                   public void onHidden(FloatingActionButton fab) {
                       super.onHidden(fab);
                       fab.setVisibility(View.INVISIBLE);
                   }
               });
            }else if((dyConsumed<0||dyConsumed<0)&&child.getVisibility()!=View.VISIBLE){
                child.show(new FloatingActionButton.OnVisibilityChangedListener() {
                    @Override
                    public void onShown(FloatingActionButton fab) {
                        super.onShown(fab);
                        fab.setVisibility(View.VISIBLE);
                    }
                });
            }
        }
    }
    
    

    相关文章

      网友评论

          本文标题:FloatingActionButton.Behavior

          本文链接:https://www.haomeiwen.com/subject/xppzictx.html