weixin_53719649 2022-07-24 23:42 采纳率: 25%
浏览 50

Android中的RecycleView

RecycleView可以做到当你滑动到列表的某一位置时在顶部添加数据列表不动的效果吗?准确的说是比如你滑动到第三个item,此时第一个和第二个都被滑动到屏幕外面了,现在在第一个item上面增添一条数据,屏幕内顶部明明是第三个item现在被自动挤成第二个了,可不可以让哪怕他在顶部增加,可是屏幕上显示的还是第三个item在顶端。

  • 写回答

3条回答 默认 最新

  • liujichangdeboke 2022-07-25 09:26
    关注

    可以添加在list添加数据后,不调用adapter的notifyDataSetChanged方法通知RecyclerView更新,如果只是在顶部添加数据的话,可以监听recyclerview滑动到顶后再调用adapter的notifyDataSetChanged更新,就像这样:

    
    rv.addOnScrollListener(new RecyclerView.OnScrollListener() {
    
                @Override
                public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
                    super.onScrolled(recyclerView, dx, dy);
                    //recyclerView.canScrollVertically(1)的值表示是否能向上滚动,false表示已经滚动到底部
                    //recyclerView.canScrollVertically(-1)的值表示是否能向下滚动,false表示已经滚动到顶部
                    if (!recyclerView.canScrollVertically(-1)){
                        popStringListAdapter.notifyDataSetChanged();
                    }
                }
            });
    

    滑动在顶部可以在添加数据时候,做个判断:

    list.add(0,"new one");
    if (!rv.canScrollVertically(-1)){
          popStringListAdapter.notifyDataSetChanged();
        }
    
    
    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 7月24日

悬赏问题

  • ¥15 咨询一个PYTHON的问题
  • ¥15 机器学习建模调参,roc评价指标
  • ¥15 RCS plot 包内置数据集使用时报错,如何解决?
  • ¥15 keil+mspm0g3507+二维总线舵机
  • ¥15 如何用wireshark分析找出url接口和param参数
  • ¥15 有谁知道这是阿里云那个应用的域名吗,怎么调用?
  • ¥30 正则表达式的一些问题
  • ¥15 C#如何使用不需要安装 Microsoft Excel 的机器上的方法或者库实现:将指定Excel区域导出为图片(例如A1:AO50)
  • ¥15 虚拟机只能接收不能发送
  • ¥15 为什么echarts极坐标柱形图的图形显示的特别小呢