public void scrollToTop() {
//拿到 appbar 的 behavior,让 appbar 滚动
ViewGroup.LayoutParams layoutParams = appBarLayout.getLayoutParams();
CoordinatorLayout.Behavior behavior =
((CoordinatorLayout.LayoutParams) layoutParams).getBehavior();
if (behavior instanceof AppBarLayout.Behavior) {
AppBarLayout.Behavior appBarLayoutBehavior = (AppBarLayout.Behavior) behavior;
//拿到下方tabs的y坐标,即为我要的偏移量
float y = noContainer.getY();
// mrecycleview.setNestedScrollingEnabled(false);//禁止滑动
mrecycleview.setNestedScrollingEnabled(true);//滑动
//注意传递负值
appBarLayoutBehavior.setTopAndBottomOffset((int) -y);
//appBarLayout.setExpanded(true);
}
}
主要就是这一句,我的底部还有一个viewpager(里面装的是recycleview的商品item),在上滑动到viewpager上面的recycleview禁止滑动了,所以我的 添加了这句 mrecycleview.setNestedScrollingEnabled(true);//滑动
当然点击置顶按钮的时候,还要给viewpager里面的recycleview传个置顶的功能(例如我的通过EvenBus传的mRecycleview.scrollToPosition(0);商品在viewpager中置顶),没有这个的可以不传。
欢迎指正,如果还要别的方法也可以发出来。