关于 Android 在 Fragment 使用 GridView,当切换多个页面后在返回 GridView 空白 作者: Chuwen 时间: 2020-11-06 分类: Android 评论 # 关于 Android 在 Fragment 使用 GridView 并动态更新数据,当切换多个页面后再返回使用了 GridView 控件的,界面空白 > 排查了许久,发现可能是这个方法有问题,这个方法是在 `Fragment1.java` 里面的,里面会定时更新 `fBean1List` 数据,然后调用 `updateData();` 方法进行通知更新。 > 因为之前在 Activity 这么写没有什么问题,所以理所应当的认为在 Fragment 这么写也应该没有问题,**排查了n处** 后发现,在 Fragment 里并不能这么写 ```java private void updateData() { if (adapter == null) { Log.i(TAG, "updateData: 适配器不存在,重新创建"); adapter = new ChuwenMycar1ItemAdapter(getContext(), fBean1List); mycar_1.setAdapter(adapter); } else { Log.i(TAG, "updateData: 适配器存在,更新数据"); adapter.notifyDataSetChanged(); } } ``` # 所以我将它改成 > 每次都重新 `setAdapter`,然后问题就随之解决了 ``` private void updateData() { adapter = new ChuwenMycar1ItemAdapter(getContext(), fBean1List); mycar_1.setAdapter(adapter); } ``` ## 以上本人见解,无法解释其原因,如果有懂得的朋友们评论说一下 ## 另外, ListView 可能也需要每次重新设置下 Adapter,具体自己测试了