Blackberry:覆盖manager的触摸事件覆盖所有其他字段
我有下面的代码,它使用手势在我的hfm上执行滚动,但是覆盖这个hfm,实际上覆盖了屏幕上的所有字段,使它们变得无用。这怎么可能呢,我以为这个特定的触摸事件属于hfm?我如何绕过这一点,只是禁用触摸滚动的hfmBlackberry:覆盖manager的触摸事件覆盖所有其他字段,blackberry,Blackberry,我有下面的代码,它使用手势在我的hfm上执行滚动,但是覆盖这个hfm,实际上覆盖了屏幕上的所有字段,使它们变得无用。这怎么可能呢,我以为这个特定的触摸事件属于hfm?我如何绕过这一点,只是禁用触摸滚动的hfm gallery = new CustomHFM(){ protected void sublayout(int maxWidth, int maxHeight){ super.sublayout(maxWidth, 200);
gallery = new CustomHFM(){
protected void sublayout(int maxWidth, int maxHeight){
super.sublayout(maxWidth, 200);
setExtent(maxWidth,200);
}
protected boolean touchEvent(TouchEvent message){
int eventCode = message.getEvent();
if(eventCode == TouchEvent.GESTURE){
System.out.println("SWIPE GESTURE");
TouchGesture g = message.getGesture();
int gesturecode = g.getEvent();
int direction = g.getSwipeDirection();
//gallery.setHorizontalScroll(page_two, true);
if(direction == TouchGesture.SWIPE_WEST)
slideNext();
if(direction == TouchGesture.SWIPE_EAST)
slidePrev();
pressed = true;
}
if(eventCode == TouchEvent.UP){
pressed = false;
//slide();
}
return true;
}
};
只有当管理器使用事件时,才应该从返回true,并且它不应该在层次结构中进一步传播。在处理super.touchEvent之前,您可能也应该调用它,但我对此不确定。在SWIPE\u WEST和EAST下添加return true,而使用super.touchEvent(message)则不起作用。您如何知道经理何时使用该事件?作为一个临时修复,我只在x y位置是管理器所在位置时返回true,但是如果屏幕是动态的,并且管理器处于滚动和不同位置(由您决定),则此方法将不起作用。通常,如果您因某个事件而采取行动,您不希望UI的其他部分响应该事件,因此您会告诉系统您已使用该事件。@Adam我们如何实现slideNext和slidePrev方法。请分享一些代码片段。