小编Rub*_*ros的帖子

Android Compose LazyColumn IllegalArgumentException:密钥已被使用

我不断收到 IllegalArgumentException:密钥已被使用。如果您使用 LazyColumn/Row,请确保为每个项目提供唯一的键。

我确信我的钥匙是独一无二的。这是我的示例代码:

@Composable
fun UiComponent() {
    LazyColumn(
                verticalArrangement = Arrangement.spacedBy(12.dp),
                state = scrollState,
                reverseLayout = true
            ) {
                items(
                    items = viewmodel.messages,
                    key = { item -> item.hashcode() },
                    itemContent = { item: Entity ->
                        if (item.isDeleted) {
                            //show deleted ui
                        } else {
                            //show messages
                        }
                    })
            }
        }
}

ViewModel {

    init { 
       observeDataFromDB()
    }

    private val _messages: MutableList<Entity> = mutableStateListOf()
    val messages: List<Entity> = _messages


    fun observeDataFromDB() {
        viewModelScope.launch {
            repo.getData().collect {
                _messages.apply {
                    addNewItem(it) …
Run Code Online (Sandbox Code Playgroud)

android-jetpack-compose

13
推荐指数
1
解决办法
7692
查看次数

标签 统计

android-jetpack-compose ×1