项目在更新后隐藏在 RecyclerView 中,直到用户滚动

Items are hidden from RecyclerView after update till user scroll

我有一个带有 RecyclerView 的片段 [DISPLAY SCREEN] 在用户点击它的项目后,应用程序打开屏幕 [EDIT SCREEN] 以允许用户编辑那个 itme。 当用户完成更新时,我关闭片段 [EDIT SCREEN] 并返回 [DISPLAY SCREEN] 并向 api 发出新请求以再次获取数据

我检查了接受来自 api 数据的更新方法的线程,线程是 main

  private fun updateScreen(data: List<GymPackage>) {
    "updateScreen size ${data.size} pageNumber $pageNumber , thread num ${Thread.currentThread().name}".log(mTag)

    if (pageNumber++ == 1)
        packagesAdapter.clear()

    packagesAdapter.append(data)

    ("updateScreen size ${data.size} pageNumber $pageNumber ,, adapter ${packagesAdapter.itemCount}, ${packagesAdapter.getItemViewType(0)}" +
            ",${(packagesRecyclerView.layoutManager as LinearLayoutManager).findFirstVisibleItemPosition()}").log(mTag)
    /**
     * after get first page sometimes items not being shown so scroll to first item
     */

    packagesRecyclerView.scrollBy(0 , 50)


    loadMore = data.size == pageSize
    packagesAdapter.loadingProgressBar = data.size == pageSize

    tvNoData?.visibility = (packagesAdapter.itemCount == 0).gotViewVisiblity(true)
}

输出:

当 [DISPLAY SCREEN] 获取项目列表时,前两行,

[编辑屏幕]return 之后的第二个两行

当用户滚动时,他可以正常看到项目。

我尝试使用

使 rv 滚动

packagesRecyclerView.scrollBy(0 , 50)

还有

packagesRecyclerView.scrollToPosition(0)

都没有结果

更新 1

试过这些

没有结果

更新 2

使用 beta7 Google 表示它提供了

的修复

在我将 lib 更新为之后,应用程序运行正常,但运动在填充方面存在其他问题

 implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta7'

Return 到 beta4

implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta4'

并使用

   motion.transitionToStart()