黑莓手机跳屏滚动

4

在 BlackBerry 应用程序中,我遇到了垂直滚动的问题。在触摸屏上它可以正常工作,但是在使用轨迹球进行滚动时,它会从顶部位置跳到底部位置。

有人遇到过类似的问题吗?有什么建议可以尝试吗?

这是我的代码片段。我有一个静态背景图像,字段在其上滚动:

vertical_main = new VerticalFieldManager(USE_ALL_WIDTH |NO_VERTICAL_SCROLL |USE_ALL_HEIGHT);
vertical_AllTags=new VerticalFieldManager(USE_ALL_WIDTH | VERTICAL_SCROLL);
// i then add all the fields to vertical_AllTags
vertical_main.add(vertical_AllTags);
vertical_main.invalidate();
add(vertical_main);

感谢您的帮助。编辑:将每个字段都聚焦是正确的建议。还需要做的是,当覆盖字段的onFocus方法时,您需要调用super()函数,以便仍然调用onFocus方法的所有其他正常部分。
protected void onFocus(int direction) {
    text_select=true;
    invalidate();
    super.onFocus(direction);
}

protected void onUnfocus() {
    text_select=false;
    invalidate();
    super.onUnfocus();
}

非常感谢你。
3个回答

1

这是因为在TrackWheel Scrolling中,它会滚动到下一个聚焦字段。我认为你没有在vertical_AllTags之间给任何焦点。

您可以使用NullField()类来解决此问题。像这样...

add(new NullField(Field.FOCUSABLE))

当您添加 add(new NullField(Field.FOCUSABLE)); 时,您将获得未知的空焦点。您可以像触摸屏一样浏览所有字段。

1

这是初学者在非触摸设备中常见的问题。如果您想逐个字段滚动,有两种方法:

1)您需要将焦点放在所有字段上,然后它将逐个字段聚焦下去

另一种方法是,您不需要关注每个字段

2)只需在每个字段后添加NullField,并将焦点放在所有NullFields上,然后您的轨迹球将逐个字段地带出您的屏幕


我正在为每个字段设置焦点,但问题在于,我重写了onFocus方法而没有调用super()方法: (示例代码) protected void onFocus(int direction) {text_select=true;invalidate();super.onFocus(direction);} protected void onUnfocus() {text_select=false;invalidate();super.onUnfocus();}) 非常感谢您的帮助。 - Chregan
欢迎,现在它是否正常工作?如果您有任何疑问,请来这个房间http://chat.stackoverflow.com/rooms/4014/knowledge-sharing-center-for-blackberry-and-java - Govindarao Kondala

0

您可以通过添加两个垂直字段管理器来解决该问题...请查看此帖子中的代码


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接