我试图在向上滚动时隐藏RelativeLayout,而在向下滚动时显示它。 onScroll可以正常工作,并且每次在View设置为GONE之前都被调用。
final RelativeLayout placeHeaderMain = findViewById(R.id.place_header_main);
mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
if (dy > 0) {
// Scrolling up
placeHeaderMain.setVisibility(View.GONE);
} else {
// Scrolling down
placeHeaderMain.setVisibility(View.VISIBLE);
}
}
});
我希望我的听众在将“视图”设置为“消失”后继续工作,以使其在向下滚动时可见。
谢谢。
答案 0 :(得分:1)
是否有足够的项目要滚动?
如果dy == 0
,则不会触发上述代码。可能没有足够的项目来滚动,它将返回dy
等于至0
,更多的是它不会调用onScroll(...)
dy
隐藏后,您拥有什么RelativeLayout
?
尝试在下面检查该方法:
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
}
答案 1 :(得分:0)
尝试将视图设置为不可见而不是消失。
将任何视图设置为View.GONE
时,他都是不可见的不会在版面配置中占用任何空间,但是当您像View.INVISIBLE
那样将视图设置为View.GONE
之前,但与PIL
不同的是,您的视图仍会占用版面配置内部的空间。