我试图在向上滚动时隐藏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); } }});我希望我的听众在将 View 设置为 Gone 后继续工作,以便在向下滚动时使其可见。提前致谢。
2 回答

斯蒂芬大帝
TA贡献1827条经验 获得超8个赞
是否有足够的项目可以滚动?
上面的代码不会被触发 if dy == 0。可能没有足够的项目来制作滚动,它会返回dy 等于,0父亲更多它不会调用onScroll(...)
你有什么什么dy时候RelativeLayout隐藏的?尝试在下面检查该方法:
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
}

富国沪深
TA贡献1790条经验 获得超9个赞
尝试将视图设置为INVISIBLE而不是GONE。
当您将任何视图设置View.GONE
为不可见时,它不会在布局内占用任何空间,但是当您将视图设置为View.INVISIBLE
喜欢之前,他将不可见,但与 View.GONE
您的视图不同,它仍会占用布局内的空间。
添加回答
举报
0/150
提交
取消