小编Ver*_*ius的帖子

Jetpack Compose - LazyColumn 用于在添加项目时不重新组合

我正在尝试在 Jetpack Compose 中创建一个项目列表,该列表会在基础数据发生更改时自动更新,但它不会更新,并且我无法在它最初组合后将项目添加到 LazyColumnFor。

private var latestMessages = mutableListOf<ChatMessage>()

override fun onCreateView(
    inflater: LayoutInflater, container: ViewGroup?,
    savedInstanceState: Bundle?
): View {
    return ComposeView(context = requireContext()).apply {
        setContent {
            LatestMessages(latestMessages)
        }
    }
}

@Composable
fun LatestMessages(messages: MutableList<ChatMessage>) {
    Column {
        LazyColumnFor(items = messages) { chatMessage ->
            LatestMessageItem(chatMessage) {
                // onclick
            }
        }
    }
    Box(alignment = Alignment.Center) {
        Button(onClick = {
            latestMessages.add(
                    ChatMessage(
                            "testId",
                            "testText2",
                            "testFromId2",
                            "testToId",
                            "timestamp",
                            0
                    )
            )
        }) {

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Box 中的 Button 只是为了测试添加一个项目。据我了解 LazyColumnFor …

android kotlin android-jetpack-compose

5
推荐指数
1
解决办法
1102
查看次数

标签 统计

android ×1

android-jetpack-compose ×1

kotlin ×1