2010-05-04 33 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); 
}