【问题标题】:RecyclerView onScrollListener -on Reverse Layout-RecyclerView onScrollListener -on 反向布局-
【发布时间】:2020-01-16 12:27:25
【问题描述】:

我在我的 Android 应用上使用 RecyclerView。我想首先显示底部并从底部滚动到顶部。我可以做到,但我想添加滚动监听器,当滚动位置在顶部时我调用一个函数。

    chatRecycler = (RecyclerView) findViewById(R.id.chatRecycler);
    LinearLayoutManager layoutManager = new LinearLayoutManager(this);
    layoutManager.setReverseLayout(true);
    layoutManager.setStackFromEnd(true);
    chatRecycler.setLayoutManager(layoutManager);
    chatRecycler.setItemAnimator(new DefaultItemAnimator());

我尝试过,但它不起作用。此代码将函数调用到底部:

chatRecycler.addOnScrollListener(new RecyclerView.OnScrollListener() {
        @Override
        public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
            super.onScrollStateChanged(recyclerView, newState);
            if (!recyclerView.canScrollVertically(1) && newState==RecyclerView.SCROLL_STATE_IDLE) {

                pageId++;
                chatDuoPresenter.getChatData(pageId);
            }
        }
    });

编辑: 我仍在寻找解决方案。

【问题讨论】:

    标签: android android-recyclerview onscrolllistener


    【解决方案1】:

    解决方案:

    @Override
    public void initScrollListener() {
    
        chatRecycler.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
                super.onScrollStateChanged(recyclerView, newState);
    
                int visibleItemCount = layoutManager.getChildCount();
                int totalItemCount = layoutManager.getItemCount();
                int firstVisibleItemPosition = layoutManager.findFirstVisibleItemPosition();
    
                if ((visibleItemCount + firstVisibleItemPosition) >= totalItemCount && firstVisibleItemPosition >= 0) {
    
                    pageId++;
                    chatDuoPresenter.getChatData(pageId);
                }
            }
        });
    }
    

    【讨论】:

      猜你喜欢
      • 2016-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-10
      相关资源
      最近更新 更多