Android - Gesture Detection (Swipe up/down) on particular view
50,714
Solution 1
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);
}
});
Solution 2
You can set OnTouchListener
s to individual TextView
s.
findViewById(R.id.tvOne).setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent event) {
// Your code here
}
}
![Anukool](https://i.stack.imgur.com/nVlnj.png?s=256&g=1)
Author by
Anukool
Updated on August 07, 2022Comments
-
Anukool almost 2 years
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.