消耗所有touchEvents不会阻止在黑莓风暴上滚动

时间:2010-05-04 15:26:54

标签: blackberry

我正在尝试使用SDK v5.0为BlackBerry Storm进行自定义控制。 当用户拖动字段中的元素时,此控件需要禁用滚动。问题是,即使我的控制器消耗了发送给它的每一个触摸事件,当用户将手指从屏幕上抬起时,它仍然向上或向下晃动,就好像它完成滚动动作一样。

有没有人知道如何防止这种情况发生或我可能做错了什么?

谢谢。

2 个答案:

答案 0 :(得分:1)

我想我应该早点发布这个。

MainScreen类中似乎存在一个错误,它阻止setScrollingInertial(false)产生任何影响。为了解决这个问题并解决问题,我做了以下工作:

public static void main(String[] args)
{
    MainScreen ms = new MainScreen(NO_HORIZONTAL_SCROLL | NO_VERTICAL_SCROLL);
    VerticalFieldManager vfm = VerticalFieldManager()
    {
        public VerticalFieldManager()
        {           
            super(HORIZONTAL_SCROLL | VERTICAL_SCROLL); 
            setScrollingInertial(true);
        }       

        protected boolean touchEvent(TouchEvent message) 
        {                               
            int code = message.getEvent();          
            boolean result = super.touchEvent(message); 
            if(code == TouchEvent.DOWN) 
            {
                setScrollingInertial(!result);
            }
            return result;
        }
    };
    ms.add(vfm);
}

答案 1 :(得分:0)

我有把手指从屏幕上移开的问题,我不能说我找到了解决方法。另一方面,您是否尝试使用NO_SCROLL更改管理器或屏幕(或屏幕本身)的滚动属性?