Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Blackberry:覆盖manager的触摸事件覆盖所有其他字段_Blackberry - Fatal编程技术网

Blackberry:覆盖manager的触摸事件覆盖所有其他字段

Blackberry:覆盖manager的触摸事件覆盖所有其他字段,blackberry,Blackberry,我有下面的代码,它使用手势在我的hfm上执行滚动,但是覆盖这个hfm,实际上覆盖了屏幕上的所有字段,使它们变得无用。这怎么可能呢,我以为这个特定的触摸事件属于hfm?我如何绕过这一点,只是禁用触摸滚动的hfm gallery = new CustomHFM(){ protected void sublayout(int maxWidth, int maxHeight){ super.sublayout(maxWidth, 200);

我有下面的代码,它使用手势在我的hfm上执行滚动,但是覆盖这个hfm,实际上覆盖了屏幕上的所有字段,使它们变得无用。这怎么可能呢,我以为这个特定的触摸事件属于hfm?我如何绕过这一点,只是禁用触摸滚动的hfm

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方法。请分享一些代码片段。