黑莓 - 如何实现ListField平滑滚动?
-
16-09-2019 - |
题
<强>概述强>结果 我使用的是listfield类垂直显示的一组信息。该listfield的每一行占用的屏幕高度的2/5的
因此,(通过显示屏幕高度的限制部分模糊的项目时尤其),整个滚动/聚焦动作是非常紧张。滚动到下一个项目时
我想通过实现涡旋盘之间平滑滚动/聚焦动作来解决这个跳动。这是可能与ListField类?
示例强>结果 下面就在眼前显示问题的屏幕截图。
结果 <子>(来源: perkmobile.com )子>
在用户向下滚动到ListFieldTHREE行,此行被“滚动”到视图中一个很紧张的方式,没有平滑滚动。我知道做行高度越小缓解这个问题,但我不婉走那条路。
主要问题强>结果 如何做到平滑的滚动ListField?
解决方案
假设你想要的用户向下滚动1“点击”轨迹球,然后下一个项目是突出但不是立即滚动跳你得到一个平滑滚动,使新项目可见的(就像谷歌的行为黑莓Gmail应用程序),你必须推出自己的组件。
的基本思想是继承VerticalFieldManager,然后在滚动(键断moveFocus法)你有一个单独的线程更新垂直位置可变的,并且多次无效经理。
在线程,因为如果你想想看你驾驶的动画关闭用户事件是必要的 - 平滑滚动真的是对黑莓的动画,因为它持续时间比触发它的事件不再
我一直对细节有点含糊了,这是不是一个非常容易的事,所以希望这有助于一点。
其他提示
有没有这样做,据我所知的官方API的方式,但大概可以通过巧妙地利用NullField(Field.FOCUSABLE),这是黑莓手机的用户界面工具多少定制被迫焦点行为不置可否。
一个办法是从该交织可聚焦NullFields与列表项本身的可视内容的类派生每个“列表项” - 这将基本上迫使滚动系统,以“跳”在较小的区间,而不是大间隔由列表项之间的自然分裂决定的,并且会对不修改的列表项的内容的可见定位的附带好处。
除非你想重写如何listfield油漆或创建自己的包装,你将永远有这个问题,这是因为各行滚动时始终可见。尝试使用的labelField代替。