android - RecyclerView 带有隐藏/显示他们的 child 的项目

标签 android android-recyclerview

我有一个 RecyclerView,其中的项目是一个 LinearLayout,其中有几个 TextViews 作为子项。根据某些规则(这在 onBindViewHolder 中决定),TextViews 可能会被隐藏(可见性消失)或显示。

我的问题是,如果我在 RecyclerView 中有 3 个项目(A、B 和 C),它们具有相同数量的可见 TextViews,并且 A 在顶部在列表中,B 在中间,C 在底部,例如,如果 B 必须显示比以前更多的 TextViews,则在很短的时间内,此项目 (B) 将与 C 重叠,因为它尺寸变大了,必须容纳新的可见 TextViews,之前可见性已消失。

问题的可视化表示:

期望的情况

enter image description here

当前和不希望的情况

enter image description here

片刻之后,RecyclerView正确地容纳了项目。

我怎样才能避免这种情况发生?

编辑:

其中一条评论建议我可能必须自己制作动画并转换 View 。这是必要的还是有另一种方法?如果是这样,我怎样才能对 View 进行动画处理和转换?

编辑 2:

试过这个答案:Animating items ,但问题依然存在。在 RecyclerView 更新之前有明显的延迟。

编辑 3:

我正在使用此类 ( RecyclerViewCursorAdapter) 作为填充 RecyclerView 的适配器的基础。此外,我在 onResume

中执行此操作
@Override
public void onResume()
{
    super.onResume();

    if(getActivity().getSupportLoaderManager().getLoader(R.id.myLoaderId) == null)
    {
        getActivity().getSupportLoaderManager().initLoader(R.id.myLoaderId, null, this);
    }
    else
    {
        getActivity().getSupportLoaderManager().restartLoader(R.id.myLoaderId, null, this);
    }
}

最佳答案

关键是使用RecyclerView.ViewHolder 类setIsRecyclable() 方法。将此属性设置为 true 为 enter link description here

关于android - RecyclerView 带有隐藏/显示他们的 child 的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36538107/

相关文章:

java - Android单元测试如何创建ContentResolver stub ?

java - RecyclerView 显示相同的项目

java - 从Activity传递参数到doInBackground方法,异步任务

android - 在 Firebase Auth 中,如何检测匿名用户已升级到例如Facebook的用户?

java - Unity 是否使用 Xamarin?

android - RecyclerView GridLayoutManager : how to auto-detect span count?

android - RecyclerView v23.2.0 和向上滑动后的空白区域

android - 如何清除回收站 View 中突出显示的项目?

android - 回收站 View 不刷新

android - Gradle 构建守护进程在 CircleCI 中意外消失