2010-05-04 35 views
1

我想使用SDK v5.0为BlackBerry Storm定制控件。 当用户拖动字段内的元素时,此控件需要禁用滚动。问题在于,即使我的控件消耗了发送给它的每一次触摸事件,但当用户将手指从屏幕上抬起时,它仍然会闪烁起来,好像它完成了滚动操作一样。消费所有touchEvents不会阻止黑莓风暴滚动

有谁知道一种方法来防止这种情况发生,或者我可能做错了什么?

谢谢。

回答

0

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

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); 
}