Blackberry 10级联ListView可见项

Blackberry 10级联ListView可见项,listview,qml,blackberry-10,blackberry-cascades,Listview,Qml,Blackberry 10,Blackberry Cascades,我正在使用listview向用户显示一些消息,我想在这些消息出现在屏幕上时将其标记为已读。要做到这一点,我需要知道它们是否被显示出来。有可能吗?我知道firstvisibleItem(),但是消息的高度不是静态的,所以该解决方案无法解决我的问题 有什么想法吗 谢谢我以前没有使用过blackberry,但我使用的是QML。 根据我从你的问题中了解到的情况,你需要根据颜色区分已读邮件和未读邮件。我想到的第一件事是在列表模型中做一个标记,如果某个特定索引的委托打开,您可以从委托中设置该标记。 我希望你

我正在使用listview向用户显示一些消息,我想在这些消息出现在屏幕上时将其标记为已读。要做到这一点,我需要知道它们是否被显示出来。有可能吗?我知道firstvisibleItem(),但是消息的高度不是静态的,所以该解决方案无法解决我的问题

有什么想法吗


谢谢

我以前没有使用过blackberry,但我使用的是QML。 根据我从你的问题中了解到的情况,你需要根据颜色区分已读邮件和未读邮件。我想到的第一件事是在列表模型中做一个标记,如果某个特定索引的委托打开,您可以从委托中设置该标记。
我希望你明白我的意思

我不知道您是否能够使用ListView来完成此任务。它旨在有效地处理很长的列表,而不必跟踪显示的内容。如果我试图解决这个问题,我会考虑三种方法:

  • 使用ListItemProvider跟踪ListView何时调用与列表关联的可渲染对象。这可能不会很好地工作,因为ListView在屏幕上实际显示的项目之前和之后维护项目的视觉效果

  • 使用ListItemTypeMapper。ListItemProvider的注释相同

  • 使用LayoutUpdateHandler。我已经用这些来了解我的自定义控件在哪里以及有多大。我从来没有在ListView中使用过它们,所以我不知道是否在适当的时间触发信号,以确定控件何时在视图中滚动


  • 嘿谢谢你的回答。我认为cascades框架的listview(由BB10使用)没有委托()。如上所述,当元素在listview上可见时,消息被读取。我只需要拦截那一刻!我在考虑JS中的一些东西,当项目在屏幕上可见时可以触发的一些功能。谢谢你的帮助