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

我试图在向上滚动时隐藏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 后继续工作,以便在向下滚动时使其可见。


提前致谢。


慕田峪7331174
浏览 140回答 2
2回答

斯蒂芬大帝

是否有足够的项目可以滚动?上面的代码不会被触发 if dy == 0。可能没有足够的项目来制作滚动,它会返回dy 等于,0父亲更多它不会调用onScroll(...)你有什么什么dy时候RelativeLayout隐藏的?尝试在下面检查该方法:@Overridepublic void onScrollStateChanged(RecyclerView recyclerView, int newState) {    super.onScrollStateChanged(recyclerView, newState);}

富国沪深

尝试将视图设置为INVISIBLE而不是GONE。当您将任何视图设置View.GONE为不可见时,它不会在布局内占用任何空间,但是当您将视图设置为View.INVISIBLE喜欢之前,他将不可见,但与 View.GONE您的视图不同,它仍会占用布局内的空间。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java