我正在尝试覆盖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
,但这不起作用。
答案 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
同样有效!