Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android - Gesture Detection (Swipe up/down) on particular view

I am trying to implement the OnGestureListener in Android.
I have three TextViews in my layout.
What i am trying to achieve is to set Gesture Listener for two of the textViews .
Here is the layout -

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:id="@+id/rlMain"     android:layout_width="wrap_content"     android:layout_height="wrap_content" >      <TextView         android:id="@+id/tvOne"         android:layout_width="fill_parent"         android:layout_height="wrap_content"         android:layout_centerHorizontal="true"         android:layout_marginBottom="10dp"         android:layout_marginTop="5dp"         android:gravity="center"         android:text="One" />      <TextView         android:id="@+id/tvTwo"         android:layout_width="fill_parent"         android:layout_height="wrap_content"         android:layout_below="@+id/tvOne"         android:layout_centerHorizontal="true"         android:layout_marginBottom="10dp"         android:layout_marginTop="5dp"         android:gravity="center"         android:text="Two" />      <TextView         android:id="@+id/tvThree"         android:layout_width="fill_parent"         android:layout_height="wrap_content"         android:layout_below="@+id/tvTwo"         android:layout_centerHorizontal="true"         android:layout_marginBottom="10dp"         android:layout_marginTop="5dp"         android:gravity="center"         android:text="Three" />  </RelativeLayout> 

And here is the activity

    import android.app.Activity;     import android.os.Bundle;     import android.util.Log;     import android.view.GestureDetector;     import android.view.GestureDetector.OnGestureListener;     import android.view.MotionEvent;      public class TimeActivity extends Activity implements OnGestureListener {      GestureDetector gestureScanner;      @SuppressWarnings("deprecation")     @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.wheelview);         gestureScanner = new GestureDetector(this);      }      @Override     public boolean onTouchEvent(MotionEvent event) {         // TODO Auto-generated method stub         return gestureScanner.onTouchEvent(event);     }      @Override     public boolean onDown(MotionEvent e) {         // TODO Auto-generated method stub         return true;     }      @Override     public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,             float velocityY) {         // TODO Auto-generated method stub         Log.i("Test", "On Fling");         return true;     }      @Override     public void onLongPress(MotionEvent e) {         // TODO Auto-generated method stub      }      @Override     public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,             float distanceY) {         // TODO Auto-generated method stub         return false;     }      @Override     public void onShowPress(MotionEvent e) {         // TODO Auto-generated method stub      }      @Override     public boolean onSingleTapUp(MotionEvent e) {         // TODO Auto-generated method stub         return false;     } } 

At present Fling for all the three textviews is getting called .
Is there any way through which i can set the Gesture Listener for some particular views in the layout.
Any help will be highly appreciated.

like image 432
Anukool Avatar asked Feb 18 '13 07:02

Anukool


People also ask

What is fling gesture?

For example, a fling gesture involves the user pressing a finger down on the screen, swiping across the screen, and lifting the finger up off the screen while the swipe is still in motion (that is, without slowing down to stop before lifting the finger).


1 Answers

Do this in your onCreate method.

findViewById(R.id.tvOne).setOnTouchListener(new View.OnTouchListener() {              @Override            public boolean onTouch(View v, MotionEvent event){                 return gestureScanner.onTouchEvent(event);            }   }); 
like image 190
M-WaJeEh Avatar answered Oct 05 '22 05:10

M-WaJeEh