为了账号安全,请及时绑定邮箱和手机立即绑定

当 View 设置为 GONE 时未调用 Android onScrolled

当 View 设置为 GONE 时未调用 Android onScrolled

慕田峪7331174 2022-06-04 17:34:32
我试图在向上滚动时隐藏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);

}



查看完整回答
反对 回复 2022-06-04
?
富国沪深

TA贡献1790条经验 获得超9个赞

尝试将视图设置为INVISIBLE而不是GONE
当您将任何视图设置View.GONE为不可见时,它不会在布局内占用任何空间,但是当您将视图设置为View.INVISIBLE喜欢之前,他将不可见,但与 View.GONE您的视图不同,它仍会占用布局内的空间。

查看完整回答
反对 回复 2022-06-04
  • 2 回答
  • 0 关注
  • 139 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号