android fab 子菜单,用于自定义布局的listview的Android FAB行为

首先,您需要扩展default FAB behavior,以便在显示Snackbar时保持FAB行为.否则,当Snackbar弹出时,您会看到它没有向上翻译.

仅对垂直滚动做出反应:

@Override

public boolean onStartNestedScroll(CoordinatorLayout parent,

View child, View target, View target,int scrollAxes) {

return (scrollAxes & ViewCompat.SCROLL_AXIS_VERTICAL) != 0;

}

一旦你有垂直嵌套滚动累积滚动了多少.滚动FAB高度时开始翻译FAB:

Override

public void onNestedPreScroll(CoordinatorLayout coordinatorLayout, FloatingActionButton child, View target, int dx, int dy, int[] consumed) {

if (dy > 0 && mTotalDy < 0 || dy < 0 && mTotalDy > 0) {

mTotalDy = 0;

}

mTotalDy += dy;

if ( mTotalDy > child.getHeight()

&& child.getVisibility() == View.VISIBLE) {

//translate to it's height, offscreen, set visbility to gone at end of translation animation

} else if (mTotalDy < 0

&& child.getVisibility() == View.GONE) {

//translate to 0 set visbility to visible at end of translation animation

}

}

当mTotalDy大于FAB高度时,我们向下滚动,当mTotalDy我们向上滚动时.

您还应该在onNestedPreFling()方法中处理嵌套的flinging.当velocityY Math.abs(velocityX).换句话说,只有在有垂直投掷时.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值