Note that there are some explanatory texts on larger screens.

plurals
  1. POSet GestureDetector to all child views
    text
    copied!<p>I would like to add a GestureDetector to all views (view groups) of an activity without assigning it manually to every single view. Right now onFling() is only activated when swiping over the background but not when swiping on e.g. button1.</p> <pre><code>package com.app.example; import android.app.Activity; import android.content.Context; import android.graphics.Color; import android.os.Bundle; import android.util.Log; import android.view.GestureDetector; import android.view.MotionEvent; import android.view.GestureDetector.SimpleOnGestureListener; import android.view.View; import android.view.View.OnTouchListener; import android.widget.Button; import android.widget.LinearLayout; public class ExampleActivity extends Activity { Context mContext = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mContext = this; LinearLayout parent = new LinearLayout(mContext); parent.setOrientation(LinearLayout.VERTICAL); parent.setBackgroundColor(Color.RED); Button button1 = new Button(mContext); button1.setText("Button 1"); Button button2 = new Button(mContext); button2.setText("Button 2"); parent.addView(button1); parent.addView(button2); final GestureDetector gestureDetector = new GestureDetector( new MyGestureDetector()); parent.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { gestureDetector.onTouchEvent(event); return true; } }); setContentView(parent); } } class MyGestureDetector extends SimpleOnGestureListener { @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { // right to left if(e1.getX() - e2.getX() &gt; 10 &amp;&amp; Math.abs(velocityX) &gt; 20) { Log.i("onFling", "right to left"); return false; // left to right } else if (e2.getX() - e1.getX() &gt; 10 &amp;&amp; Math.abs(velocityX) &gt; 20) { Log.i("onFling", "left to right"); return false; } return false; } } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload