2012-04-02 8 views
1

モバイルデバイス用のネイティブアプリのようなリスト項目を長くクリックするとgwtには方法がありますか?GWTのリストアイテムを長時間クリックする

これは、シンプルなクリックの横にあるスマートフォンの直感的なクリックです。

私は、ユーザーがアイテムを削除する可能性を提供したいと思います。

longclicklistenerような何か...

答えて

0

は、それ自体が何のLongPressListenerありませんが、あなたは、のMouseListener(http://google-web-toolkit.googlecode.com/svn/javadoc/1.5/com/google/gwt/user/client/ui/MouseListener.html)とれるonmousedownを実装するタイマーを開始、onMouseUpの中でそれをキャンセルすることができます()。タイマーがキャンセルされる前に期限切れになると、長いクリックが発生します。

Timer t = new Timer() { 
    public void run() { 
    //fire long press event. 
    } 
}; 
new MouseListener(){ 

    public void onMouseDown(Widget sender,int x,int y){ 
     timer.cancel(); 
     timer.schedule(1000);    
    } 

    public void onMouseUp(Widget sender,int x,int y){ 
     timer.cancel();  
    } 
} 
+1

がMouseListener'が2年以上のために推奨されていません 'ことを考えると、それはおそらく、タッチデバイスに向けだと、私はむしろいいと思います代わりに[touch events](http://google-web-toolkit.googlecode.com/svn/javadoc/latest/com/google/gwt/event/dom/client/HasAllTouchHandlers.html)を使って、タイマーを ' onTouchStart'を実行し、他の3つのタッチイベントでキャンセルします(よく、 'onTouchMove'の許容位置デルタを確認してください) –

+0

私はそれを見ませんでした。ええ、タッチイベントのインターフェイスは、タブレットでも動作するので、それを行うためのより良い方法です。 – Abhijith

+0

GWT 1.5(リンク先のドキュメント)は、ほぼ4歳です。あなたのURLに '1.5'の代わりに' latest'をつけて最新のバージョンを探してください。 –

0

m-gwt(GWT用のモバイルUIフレームワーク)を見てください.GestureRecognizersが異なります。

は、以下を参照してくださいhttp://www.m-gwt.com

1

これは私のために働いています

final Timer longpress = new Timer(){ 

     @Override 
     public void run() { 

      Window.alert("long press!"); 
     }}; 

    marker.addMouseDownListener(new Marker.MouseDownHandler() { 

     @Override 
     public void handle(MouseEvent event) { 

      longpress.schedule(TIME_LONG_PRESS); 

     } 
    }); 

    marker.addMouseUpListener(new Marker.MouseUpHandler() { 

     @Override 
     public void handle(MouseEvent event) { 

      longpress.cancel(); 

     } 
    }); 
関連する問題