Jetpack Compose版本:编写BOM 2023.08.00
使用的Jetpack合成组件:基础、材质、动画、livedata、ui工具、viewmodel
Kotlin版本:1.9.10
再现步骤或再现代码样本:
- 当向lazyColumn添加一个项并将列中底部的项推到更低位置时,项节点将被复制。这使得我的 Jmeter 化测试失败,因为有多个节点具有相同的测试标记。这在BOM 2023.08.00编写前未发生
- 请查看附件截图。当惰性列表项更改时,节点在层次结构中保持持久性。如果您查看这两个截图,其中一个显示了按钮所在的真实的节点,我们可以看到节点上的参数。另一个屏幕截图显示了一个虚拟节点,按钮曾经在那里。它没有参数。
是否有人经历过这种情况,如果是这样,是否有解决方案仅在编写 Jmeter 化测试中针对可见节点,而不会获得模糊的节点异常?
下面是我的lazyColumn实现的一些示例代码:
LazyColumn(
modifier = Modifier.testTag(COMMUTE_ITEM_LIST),
state = state
) {
item { Spacer(modifier= Modifier.height(topPaddingDp)) }
items(itemViews.size, key = { itemViews[it].uniqueId }) { index ->
AnimateItemPlacements {
CommuteItemRow(
modifier = Modifier,
itemViews = itemViews,
index = index,
onRemoveItemAtIndex = onRemoveItemAtIndex,
onEditItemAtIndex = onEditItemAtIndex,
onItemMoved = onItemMoved
)
}
}
item {
AddItemButton(
modifier = Modifier,
index = itemViews.size,
onAddItemAtIndex = onAddItemAtIndex
)
}
item {
Spacer(Modifier.height(bottomPaddingDp))
}
}
1条答案
按热度按时间k4emjkb11#
在浏览了https://issuetracker.google.com/issues/187188981之后,有一个解决方案最终对我有效。
问题是,一些节点仍然缓存在懒惰列表中,并且当测试试图通过这样的调用来挑选特定节点时,现在会抛出异常:
在此期间(直到Compose团队修复此问题)的解决方案是使用这些扩展函数,请参阅上述链接的帖子#12中的海报: