2017-01-13 1 views
0

Я пытаюсь разработать приложение, где будет 3-4 кнопки. На каждой кнопке я хочу распознать жесты вправо/влево/вверх/вниз. но я хочу, чтобы функциональность этих жестов отличалась для каждой кнопки. Я не понимаю, как это сделать. Пожалуйста, помогите кому-нибудь. В настоящее время, я могу успешно обнаруживать мазковые жесты на всей компоновки/класса, но не в состоянии сделать это для конкретных взглядов, таких как кнопки, TextViews и т.д.C# Android: как распознавать жесты для отдельных просмотров, например, кнопки, текстовые представления, всю активность и т. Д.

+0

следовать моим [ответ] (http://stackoverflow.com/questions/41273025/genericmotion-action-down-not-firing/41280040#41280040), это должно быть полезно. –

ответ

0
public class MainActivity extends Activity implements 
    GestureDetector.OnGestureListener, 
    GestureDetector.OnDoubleTapListener{ 

private static final String DEBUG_TAG = "Gestures"; 
private GestureDetectorCompat mDetector; 

// Called when the activity is first created. 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    // Instantiate the gesture detector with the 
    // application context and an implementation of 
    // GestureDetector.OnGestureListener 
    mDetector = new GestureDetectorCompat(this,this); 
    // Set the gesture detector as the double tap 
    // listener. 
    mDetector.setOnDoubleTapListener(this); 
} 

@Override 
public boolean onTouchEvent(MotionEvent event){ 
    this.mDetector.onTouchEvent(event); 
    // Be sure to call the superclass implementation 
    return super.onTouchEvent(event); 
} 

@Override 
public boolean onDown(MotionEvent event) { 
    Log.d(DEBUG_TAG,"onDown: " + event.toString()); 
    return true; 
} 

@Override 
public boolean onFling(MotionEvent event1, MotionEvent event2, 
     float velocityX, float velocityY) { 
    Log.d(DEBUG_TAG, "onFling: " + event1.toString()+event2.toString()); 
    return true; 
} 

@Override 
public void onLongPress(MotionEvent event) { 
    Log.d(DEBUG_TAG, "onLongPress: " + event.toString()); 
} 

@Override 
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, 
     float distanceY) { 
    Log.d(DEBUG_TAG, "onScroll: " + e1.toString()+e2.toString()); 
    return true; 
} 

@Override 
public void onShowPress(MotionEvent event) { 
    Log.d(DEBUG_TAG, "onShowPress: " + event.toString()); 
} 

@Override 
public boolean onSingleTapUp(MotionEvent event) { 
    Log.d(DEBUG_TAG, "onSingleTapUp: " + event.toString()); 
    return true; 
} 

@Override 
public boolean onDoubleTap(MotionEvent event) { 
    Log.d(DEBUG_TAG, "onDoubleTap: " + event.toString()); 
    return true; 
} 

@Override 
public boolean onDoubleTapEvent(MotionEvent event) { 
    Log.d(DEBUG_TAG, "onDoubleTapEvent: " + event.toString()); 
    return true; 
} 

@Override 
public boolean onSingleTapConfirmed(MotionEvent event) { 
    Log.d(DEBUG_TAG, "onSingleTapConfirmed: " + event.toString()); 
    return true; 
} 

}

+0

Привет Rahul, На самом деле это код Java, я уже пробовал, но реализация несколько отличается в C#. поэтому, я ищу пример в C# (xamarin) –

Смежные вопросы