我有这样的布局:
我想实现该功能:当用户向下滚动 RecyclerView
时,他看到的两件事是 Toolbar
和 FilterPanel
。 title
和 image
是隐藏的,当他向上滚动到 recyclerview
的开头时 title
和 image
出现。
这是我的HiddingScrollListener
:
public abstract class HidingScrollListener extends RecyclerView.OnScrollListener {
private static final float HIDE_THRESHOLD = 10;
private int scrolledDistance = 0;
private boolean controlsVisible = true;
public HidingScrollListener() {
}
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
if (scrolledDistance > HIDE_THRESHOLD && controlsVisible) {
onHide();
controlsVisible = false;
scrolledDistance = 0;
} else if (scrolledDistance < -HIDE_THRESHOLD && controlsVisible) {
onShow();
controlsVisible = true;
scrolledDistance = 0;
}
if((controlsVisible && dy>0) || (!controlsVisible && dy<0)) {
scrolledDistance += dy;
}
}
public abstract void onShow();
public abstract void onHide();
}
我在 activity
中实现了这个 listener
:
mRecyclerView.addOnScrollListener(new HidingScrollListener() {
@Override
public void onShow() {
}
@Override
public void onHide() {
mTitle.setVisibility(View.GONE);
mImageView.setVisibility(View.GONE);
}
});
我不知道如何捕捉 RecyclerView
何时开始以及如何在这种情况下显示 title
和 image
。我有一个问题:当我向下滚动时,如何将 FilterPanel
固定在 Toolbar
下?
无论如何,谢谢你!
最佳答案
您应该使用 android 设计支持库中的 CoordinatorLayout
。
此布局在其子事件(最常见的滚动事件)之间进行协调。这是一个教程:https://guides.codepath.com/android/Handling-Scrolls-with-CoordinatorLayout
关于android - 在 Scroll RecyclerView 上隐藏/显示多个 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35157949/