【问题标题】:How to implement list multiSelect in Jetpack Compose?如何在 Jetpack Compose 中实现 list multiSelect?
【发布时间】:2021-12-07 22:50:39
【问题描述】:

我需要为LazyList实现多选,长按列表项时也会改变appBar的内容。

对于ListView,我们只需将choiceMode 设置为CHOICE_MODE_MULTIPLE_MODAL 并设置MultiChoiceModeListener 即可。

有没有办法使用 Compose 来做到这一点?

【问题讨论】:

    标签: android android-jetpack-compose multi-select android-actionmode


    【解决方案1】:

    selected 字段添加到代表该项目的某个类。然后根据该字段编写适当的代码。在撰写中,您不必寻找一些LazyColumn 标志或类似的东西。您可以控制列表的整个状态。

    AppBar也可以这样说,有的话可以做个简单的,比如if (items.any { it.selected }) // display button

    【讨论】:

    • Compose 无法对在可组合函数之外处理的数据的更改做出正确反应,因此在此处修改表示该项目的对象将无济于事。
    • @noktigula 当然,但这里有什么问题?修改对象然后通知 compose 它们已更改是标准做法。惰性列将重新组合已更改的对象(如果这些对象正确实现相等)。无论哪种方式,您的评论在此线程的上下文中都没有意义..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-22
    • 2022-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多