我正在使用listview向用户显示一些消息,我希望这些消息在屏幕上显示时将其标记为已读。要做到这一点,我需要知道它们是否被显示。有可能这样做吗?我知道firstvisibleItem(),但是消息的高度不是静态的,因此解决方案不会解决我的问题。
任何想法?
由于
答案 0 :(得分:0)
我之前没有使用黑莓,但我使用的是QML。 从我对你的问题的理解,你需要区分读取的消息和未读的颜色。我想到的第一件事是在List模型中创建一个标志,如果特定索引的委托打开,您可以从委托中设置该标志。 我希望你明白我的意思。
答案 1 :(得分:0)
我不知道您是否能够使用ListView完成此操作。它旨在有效地处理非常长的列表,不一定跟踪已显示或未显示的内容。如果我试图解决这个问题,我会看三种方法:
使用ListItemProvider跟踪ListView何时调用与列表关联的可渲染对象。这可能不太适用,因为ListView会在屏幕上实际显示项目之前和之后维护项目的视觉效果。
使用ListItemTypeMapper。对ListItemProvider的评论相同。
使用LayoutUpdateHandler。我用这些来了解我的自定义控件的位置和大小。我从未在ListView中使用它们,所以我不知道是否在适当的时间触发信号以找出控件何时滚入和滚出视图。