覆盖PictureScrollField的导航移动错误

时间:2012-01-17 19:31:51

标签: blackberry navigation scroll

我正在尝试覆盖protected boolean navigationMovement(int dx,int dy,int status,int time)子类中的MainScreen,并添加了PictureScrollField。如果我没有覆盖它,那么PictureScrollField正常工作但是当我覆盖它时,currentImageIndex保持固定为零并且它不会滚动!我该怎么做才能防止这种异常,或者还有另外(更好)的方法吗?我只想用PictureScrollField的当前图像更改字段的标题。换句话说,我需要currentImageIndex来动态更改屏幕上可见的数据。该字段是自定义的,因此我无法使用ScrollEntry的标签/标注功能。

编辑:我过度使用protected boolean navigationMovement(int dx,int dy,int status,int time)并返回false,但这不起作用。

1 个答案:

答案 0 :(得分:0)

我必须解决PictureScrollField的默认行为,如下所示:

protected boolean navigationMovement(int dx,int dy,int status,int time){
// gallery is an object of PictureScrollField
    if(gallery.getVisualState()==Field.VISUAL_STATE_FOCUS && dx != 0){
        int currentInd = gallery.getCurrentImageIndex() + dx;
        gallery.selectImageAtCoordinate((dx)*50 + Display.getWidth()/2);
        // 50 is the width of the gallery object as provided in the constructor
        // Instead of 50, we can also write gallery.getWidth()
        // use the current image index as - gallery.getCurrentImageIndex()
    }
    return false;
}

但奇怪的是,尽管返回false(这意味着事件没有被消耗),但PictureScrollField没有处理导航动作!无论如何,手动设置currentImageIndex同样有效!