【发布时间】:2016-05-31 13:17:03
【问题描述】:
我有一个RecyclerView,如下图所示:
这是RecyclerView的设置代码:
RecyclerView.LayoutManager layoutManager = new GridLayoutManager(this, 2);
dataRecyclerView.setLayoutManager(layoutManager);
dataRecyclerView.addItemDecoration(new GridSpacingItemDecoration(...);
dataRecyclerView.setItemAnimator(new DefaultItemAnimator());
在我更新 RecyclerView 的选定项的新活动开始后,RecyclerView 会重新填充新数据以反映新更改,但我得到以下结果:
当我向下滚动时,我得到了这个差距:
我尝试在刷新后调用RecyclerView#invalidate()、#invalidateItemDecorations()、#requestLayout(),但无济于事;而且我也不会在RecyclerView 上拨打setHasFixedSize(true)。
到底是什么问题?如何调整子项的大小,以便它们在刷新后精确地包裹内容?
(P.S:我尝试在不进行任何更改的情况下进行刷新,但什么也没发生,这证明了我的理论,即只有当子项的高度发生变化时才会出现问题。)
【问题讨论】:
-
分享你的适配器代码
-
发布您的适配器和适配器的 xml 代码...
-
适配器的代码有点长,扩展了一些泛型类。但是绑定过程很正常。
-
我也遇到过同样的问题。你解决了吗?
-
@Nik 不幸的是,我从来没有这样做过。
标签: java android android-recyclerview recyclerview-layout