【问题标题】:Recycler View when scrolled Top should load data滚动顶部时的回收器视图应加载数据
【发布时间】:2018-01-24 14:38:09
【问题描述】:

我正在尝试制作一个聊天应用程序,当用户滚动到顶部时,服务器现在只获取并显示 15 条消息用户滚动到底部而不是顶部,如果用户滚动到顶部,我如何获得相同的功能

  public UserAdapter(RecyclerView recyclerView, Activity activity, ArrayList<User> arrayList) {
    this.activity = activity;
    this.arrayList = arrayList;
    final LinearLayoutManager linearLayoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
    recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {

        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) {

            super.onScrolled(recyclerView, dx, dy);
            totalItemCount = linearLayoutManager.getItemCount();
            lastItemCount = linearLayoutManager.findLastVisibleItemPosition();
            Log.d(TAG, "onScrolled: " + lastItemCount + " " + totalItemCount);
            if (!isLoading && totalItemCount <= (lastItemCount + visibleThreshold)) {
                if (iLoadMore != null) {
                    iLoadMore.onLoadMore();
                    isLoading = true;
                }
            }
        }
    });
}

我的主要活动

    adapter.setUnLoaded();
    adapter.setiLoadMore(new ILoadMore() {
        @Override
        public void onLoadMore() {
            arrayList.add(null);//for the progressbar
            adapter.notifyItemInserted(arrayList.size() - 1);
            Log.d("LOADMORE", "onLoadMore: scrolling working");
            BackgroundTask backgroundTask1 = new BackgroundTask(getApplicationContext());
            backgroundTask1.delegate = (BackgroundTask.AsynResponse) context;
            backgroundTask1.execute("getuser");
        }
    });

【问题讨论】:

  • 尝试反转您的 recylerview 加载数据stackoverflow.com/questions/29474876/…
  • 谢谢,当我在我的适配器中写入 linearLayoutManager.setReverseLayout(true);它对我有用,我得到了我想要的功能,谢谢

标签: android arraylist scroll android-asynctask android-recyclerview


【解决方案1】:
recyclerViewParticulars.addOnScrollListener(new RecyclerView.OnScrollListener() {

            @Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);
                if (dy > 0 ) {
                    // Scrolling up
                    Log.d("recyclerviewscroll", "up");



                } else if(dy <0 ){
                    // Scrolling down
                    Log.d("recyclerviewscroll", "down");

                }
            }
}

【讨论】:

  • 它对我不起作用,但 linearLayoutManager.setReverseLayout(true) 对我有用,感谢您的关注
猜你喜欢
  • 2017-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-10
  • 2017-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多