问题
I have an activity with coordinator layout.inside activity there is a fragment with Recycler view and float button.how can I show/hide float button when Scroll Recycler view and avoid to use fab behavior?!
in activity layout: CoordinatorLayout----->AppBarLayout---->Toolbar and FrameLayout and Bottom bar view
in fragment layout: RelativeLayout---->Recycler view and float button
I want to implement something like Google+ home page. how can I implement this scenario?
Temporary I used this solution for my problem:
using coordinator layout of activity by interface in my fragment and show/hide fab with fab behavior ... until I find better solution!!!
回答1:
This code works just fine:
mRecycler.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
if(dy > 0){
mFab.hide();
} else{
mFab.show();
}
super.onScrolled(recyclerView, dx, dy);
}
});
You cannot do:
app:layout_anchor="@id/listView"
app:layout_anchorGravity="bottom|end"
Look here:
There is no support built-in for CoordinatorLayout to work with ListView according to this Google post.
回答2:
I modified Leondro's method such that the FAB will hide when there's scrolling and show when the scrolling stops.
scrollListener = new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
switch (newState) {
case RecyclerView.SCROLL_STATE_IDLE:
fab.show();
break;
default:
fab.hide();
break;
}
super.onScrollStateChanged(recyclerView, newState);
}
};
rv.clearOnScrollListeners();
rv.addOnScrollListener(scrollListener);
来源:https://stackoverflow.com/questions/41699160/how-to-show-hide-fab-on-scroll-recycler-view-with-coordinator-parent