2011-07-02 2 views

答えて

6

各行にGestureDetectorを使用し、行コンテンツ自体をViewFlipperにラップします。スワイプで、ViewFlipperの子供を切り替えます。

Iがどのよい又は月GestureDetectorViewFlipperを組み合わせ、それをいずれかの方向に動作するように設計されViewSwiper(例えば、定期的な行から、又はを左スワイプは、右の操作に切り替えることになる)、有します望ましくない。しかし、これはどのように動作するかをあなたに知らせるべきです。

+0

です。ありがとうございます。 私はあなたに似たような解決策を見つけました。 http://goo.gl/WpFEi 最初のテストでは、非常に良い結果が得られましたが、遅れています。私は、このソリューションは少しカスタマイズが必要だと思う - しかし、私はそれが動作すると思います! ありがとうございます – Superroot

+0

これはAndroid 2.1以上のGestureDetectorで動作しますか? –

+0

@CodeDroid:* Android 2.1+ GestureDetectorの*機能は何ですか? – CommonsWare

1

私はあなたが必要とするものに類似した何かをしました - あなたはthereについての情報を見つけることができます。私はそこにいくつかの手動のものをやっているが、それはうまく動作します。あなたの便宜のために私が使用したコードは

OnTouchListener gestureListener = new View.OnTouchListener() { 

    private int padding = 0; 
    private int initialx = 0; 
    private int currentx = 0; 
    private ViewHolder viewHolder; 

    public boolean onTouch(View v, MotionEvent event) { 

     if (event.getAction() == MotionEvent.ACTION_DOWN) { 
      padding = 0; 
      initialx = (int) event.getX(); 
      currentx = (int) event.getX(); 
      viewHolder = ((ViewHolder) v.getTag()); 
     } 

     if (event.getAction() == MotionEvent.ACTION_MOVE) { 
      currentx = (int) event.getX(); 
      padding = currentx - initialx; 
     } 

     if (event.getAction() == MotionEvent.ACTION_UP || 
      event.getAction() == MotionEvent.ACTION_CANCEL) { 
      padding = 0; 
      initialx = 0; 
      currentx = 0; 
     } 

     if (viewHolder != null) { 
      if (padding == 0) { 
       v.setBackgroundColor(0xFF000000); 
       if (viewHolder.running) 
        v.setBackgroundColor(0xFF058805); 
      } 
      if (padding > 75) { 
       viewHolder.running = true; 
       v.setBackgroundColor(0xFF00FF00); 
       viewHolder.icon.setImageResource(R.drawable.clock_running); 
      } 
      if (padding < -75) { 
       viewHolder.running = false; 
       v.setBackgroundColor(0xFFFF0000); 
      } 
      v.setPadding(padding, 0, 0, 0); 
     } 
     return false; 
    } 
}; 
関連する問題