簡體   English   中英

如何檢測 RecyclerView 何時滾動到最頂部位置

[英]How to detect when RecyclerView is scrolled to most top position

我上面有 RecyclerView,我有一個 AppBarLayout,它的高度大於 255 像素。 當用戶滾動 RecyclerView 時,AppBarLayout 會出現問題。 為了避免這種情況,我決定手動擴展 AppBarLayout。 我的 RecyclerView 由 GridLayoutManager 制成,跨度為 3。我使用下面的代碼來收聽 RecyclerView topreach

recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
    @Override
    public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
        super.onScrollStateChanged(recyclerView, newState);
        if (newState == RecyclerView.SCROLL_STATE_IDLE) {
            int firstVisiblePosition = ((LinearLayoutManager)recyclerView.getLayoutManager()).findFirstCompletelyVisibleItemPosition();
            if (firstVisiblePosition == 0) {
                appBarLayout.setExpanded(true, true);
            }
        }
    }
});
    recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
            super.onScrolled(recyclerView, dx, dy);

            int firstVisibleItem = gridLayoutManager.findFirstCompletelyVisibleItemPosition();

            if(firstVisibleItem == 0){
                // your code
            }
        }
    });

這個答案會幫助你。 敬上

recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
        @Override
        public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {

            super.onScrollStateChanged(recyclerView, newState);
        }

        @Override
        public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
            super.onScrolled(recyclerView, dx, dy);

            totalItemCount = layoutManager.getItemCount();
            visibleItemCount = layoutManager.getChildCount();
            pastVisiblesItems = layoutManager.findFirstVisibleItemPosition();
            if ((visibleItemCount + pastVisiblesItems) >= totalItemCount ) {

                Log.d(TAG, "scroll down");



            }
            else{
                Log.d(TAG, "scroll up");
            }
        }
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM