文档章节

Fragment中,RecyclerView遇到notifyDataSetChanged无效情况说明

竹草席
 竹草席
发布于 2017/08/06 11:14
字数 195
阅读 192
收藏 0

如果数据是这样进行的初始化操作

@Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment, container, false);
        initView(rootView);
        initData();
        return rootView;阿
    }

public void initData() {
    if (mData == null) {
        mData = new ArrayList<>();
    }
    mData.clear();
    ...
    数据填充
    ...
    if (mAdapter == null) {
       mAdapter = new Adpter();
        mRvList.setAdapter(mAdapter);
    } else {
        mAdapter.notifyDataSetChanged();
    }
}

次数如果Fragment切换出去再切换回来会走notifyDataSetChanged方法而不是重新创建,此时数据会显示不出来.原因是: 在使用notifyDataSetChanged方法更新列表数据时,一定要保证数据为同个对象(即hashCode要一致)

所以解决办法 就是从新创建adpter,并设置,不要调用notifyDataSetChanged. 或者保存上次的view,在从新调用onCreateView的时候复用.

本篇内容学习子互联网

© 著作权归作者所有

竹草席
粉丝 1
博文 44
码字总数 2945
作品 0
兰州
私信 提问
recyclerView 遇到IndexOutOfBoundsException 及解决

做项目时用到了recyclerView,至于recyclerView是啥应该不用多解释了,具体用法也不介绍了,不懂的同学自行学习一下,网上很多大神已经介绍的很清楚了,我就不啰嗦了0.0 在使用recyclerView时...

紫葡萄0
2016/12/28
0
0
Android Scrollview嵌套FrameLayout嵌套RecyclerView 显示不全、滑动粘滞

标题可能说不清楚这么hehe的界面布局,如图(这里找来类似的界面布局 : 网易1元XX截图): 绿色框选部分是ScrollView,红色框选部分是一个FrameLayout,里面放的是只有RecyclerView的Fragm...

yaly
2016/12/22
2.9K
0
ViewPager,PagerAdapter总结

在一个 Android 应用中,我使用 FragmentPagerAdapter 来处理多 Fragment 页面的横向滑动。不过我碰到了一个问题,即当 Fragment 对应的数据集发生改变时,我希望能够通过调用 mAdapter.not...

CrazyManDF
2016/05/11
141
0
ViewPager刷新问题原理分析及解决方案(FragmentPagerAdapter+FragementStatePagerAdapter)

Android开发中经常用到ViewPager+Fragment+Adapter的场景,一般每个Fragment控制自己的刷新,但是如果想要刷新整个ViewPager怎么做呢?或者想要将缓存的Fragent给重建怎么做呢?之前做业务的...

看书的小蜗牛
2018/01/03
0
0
FragmentManager调用replace产生的问题

这时候就会出现一些比较莫名的问题。这个fragment会重走oncreateView等的生命周期。 比如一个Listview或GridView等,一般都是在oncreateView初始化。然后从网络请求数据。 判断adapter是否为...

Avalon1
2017/07/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

关于docker0: iptables: No chain/target/match by that name的问题解决

由于Docker 0默认网桥的iptables策略冲突问题,将导致一些web server启动时出现如下错误: docker: Error response from daemon: driver failed programming external connectivity on endpo......

王焱君
今天
87
0
js 下载 canvas 兼容移动端

很蛋疼的问题PC上好好的, 移动端下载不了 , 貌似前端 js 生成的时 base64 格式的 图片数据,移动端无法直接下载, 但是chrome 移动端和pc端都没问题, 国产的几个浏览器全部挂了 之前的下载方式...

阿豪boy
昨天
76
0
微信小程序获取用户OpenId

1.在小程序中获得UserCode: wx.login({success: function (res) {thisApp.setData({userCode: res.code})}}) 2.在小程序中获得UserInfo: wx.getUserInfo({success...

kaition
昨天
54
0
代码生成器技术乱弹二十三,未来之野望,未实现的功能SQLTypes

在原先的Java类型系统的基础上新增SQL类型系统,有校验确保SQL类型系统兼容于Java类型系统。在生成数据库脚本时候使用SQL类型系统。

火箭船
昨天
48
0
Mybatis在插入自增字段时,会对当前对象未赋值的自增字段进行赋值

Mybatis在插入自增字段时,会对当前对象未赋值的自增字段进行赋值,如下即自动完成对id的赋值 OrderItem orderItem = new OrderItem(); System.out.println("==...

Gotcha_
昨天
42
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部