英文:
How to expand and collapse a layout above recyclerView when scrolling?
问题
我有一个应用程序,其中有一个带有产品的回收站,以及在上方有另一个带有类别的布局。
我希望在滚动回收站时展开和折叠类别,就像这个视频演示的那样:
我创建了一个监听滚动的类:
public abstract class MyRecyclerScroll extends RecyclerView.OnScrollListener {
final float MINIMUM = 200;
int scrollDist = 0;
boolean isVisible = true;
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
if (isVisible && scrollDist > MINIMUM) {
hide();
scrollDist = 0;
isVisible = false;
}
else if (!isVisible && scrollDist < -MINIMUM) {
show();
scrollDist = 0;
isVisible = true;
}
if ((isVisible && dy > 0) || (!isVisible && dy < 0)) {
scrollDist += dy;
}
}
public abstract void show();
public abstract void hide();
}
然后我像这样在 recycler.setOnScrollListener
上使用它:
rec.setOnScrollListener(new MyRecyclerScroll() {
@Override
public void show() {
}
@Override
public void hide() {
}
});
英文:
I have an app which have a recycler with product and anothe layout above with categories
I want to expand and collapse the categories when the recycler scroll like this video
I made a class that listens to scroll:
public abstract class MyRecyclerScroll extends RecyclerView.OnScrollListener {
final float MINIMUM = 200;
int scrollDist = 0;
boolean isVisible = true;
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
if (isVisible && scrollDist > MINIMUM) {
hide();
scrollDist = 0;
isVisible = false;
}
else if (!isVisible && scrollDist < -MINIMUM) {
show();
scrollDist = 0;
isVisible = true;
}
if ((isVisible && dy > 0) || (!isVisible && dy < 0)) {
scrollDist += dy;
}
}
public abstract void show();
public abstract void hide();
}
Then I used it on recycler.setOnScrollListener
like this:
rec.setOnScrollListener(new MyRecyclerScroll() {
@Override
public void show() {
}
@Override
public void hide() {
}
});
专注分享java语言的经验与见解,让所有开发者获益!
评论