在9810 + Blackberry上上下滚动时出现间歇性刷新问题

时间:2012-03-31 10:18:20

标签: blackberry java-me

我在9810设备和模拟器上屏幕滚动时遇到一个奇怪的问题。 我有一个完整的订单屏幕,在确认用户的订单时显示。

在顶部有Vertical Field Manager,它包含另一个VerticalFieldManager(包含Label Fields和buttonFields)和一个FlowFieldManager(包含图像)。 现在我面临的问题是,无论何时我上下滚动屏幕,屏幕上都会出现许多灰色线条。似乎设备有一些屏幕刷新问题。我在以前的操作系统(4.5,4.5 4.7 5.0)版本上测试过,一切正常。操作系统版本高于6.0时会出现此问题。

Distorted Image

正确的屏幕必须像

Correct Image

正如您所看到的那样,当我向上和向下滚动屏幕时,会出现这些灰色线条。有任何想法如何纠正这个问题?

2 个答案:

答案 0 :(得分:4)

在第一张图片中,您似乎试图在屏幕顶部添加阴影效果。垂直字段管理器使用一些图形优化来提高滚动性能。它不是重新绘制所有内容,而是在布局区域中拾取屏幕上的像素,然后移动它们。只要所有绘制代码​​都相对于虚拟范围,这就可以工作。

某些UI效果(如阴影效果)与屏幕相关,而不是虚拟范围,因此此优化会获取这些效果并将其复制到其他地方,这看起来很糟糕。它也往往看起来就像你的第一张图片。

有两种方法可以解决这个问题:

  1. 关闭优化。覆盖isScrollCopyable以返回false。您的视觉问题应该消失,但滚动性能会受到影响。

  2. 不要在可滚动区域的顶部添加UI效果。

答案 1 :(得分:2)

对于迟到的回复,我感到非常抱歉。但是我自己解决了这个问题。我刚刚覆盖了我的类中的paintBackground方法,并且在里面我写了graphics.clear()。这似乎解决了这个滚动问题。我也会尝试Michael方法。