Как реализовать как ontouch, так и onfling в одном списке?

У меня есть список и реализовано onclick, а также onfling.problem, когда я делаю fling (проведите по экрану слева направо), onclick событие listview также запускается. Как преодолеть эту проблему? Как отличить touch (tap) и бросать (прокручивать) в listview?

listClickListener = new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View v,int position, long id) { //Job of Onclick Listener } }; mContactList.setOnItemClickListener(listClickListener); mContactList.setAdapter(adapter); // Gesture detection gestureDetector = new GestureDetector(new MyGestureDetector(prosNos)); gestureListener = new View.OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { if (gestureDetector.onTouchEvent(event)) { return true; } return false; } }; mContactList.setOnTouchListener(gestureListener); } public class MyGestureDetector extends SimpleOnGestureListener { @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { // My fling event return false; } } 

PS Возможно ли это? Комментировать OnClickListener ListView и писать ту же логику в любом onTouchEvent? Но все же я не сомневаюсь, что onFling вызовет onTouch. Я прав?

Ответ на псевдокод, чтобы прояснить приведенные выше комментарии. Как вызвать метод onTouch MySimpleGestureListener.

 public class GestureExample extends Activity { protected MyGestureListener myGestureListener; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); myGestureListener = new MyGestureListener(this); // or if you have already created a Gesture Detector. // myGestureListener = new MyGestureListener(this, getExistingGestureDetector()); // Example of setting listener. The onTouchEvent will now be called on your listener ((ListView)findViewById(R.id.ListView)).setOnTouchListener(myGestureListener); } @Override public boolean onTouchEvent(MotionEvent event) { // or implement in activity or component. When your not assigning to a child component. return myGestureListener.getDetector().onTouchEvent(event); } class MyGestureListener extends SimpleOnGestureListener implements OnTouchListener { Context context; GestureDetector gDetector; public MyGestureListener() { super(); } public MyGestureListener(Context context) { this(context, null); } public MyGestureListener(Context context, GestureDetector gDetector) { if(gDetector == null) gDetector = new GestureDetector(context, this); this.context = context; this.gDetector = gDetector; } @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { return super.onFling(e1, e2, velocityX, velocityY); } @Override public boolean onSingleTapConfirmed(MotionEvent e) { return super.onSingleTapConfirmed(e); } public boolean onTouch(View v, MotionEvent event) { // Within the MyGestureListener class you can now manage the event.getAction() codes. // Note that we are now calling the gesture Detectors onTouchEvent. And given we've set this class as the GestureDetectors listener // the onFling, onSingleTap etc methods will be executed. return gDetector.onTouchEvent(event); } public GestureDetector getDetector() { return gDetector; } } } 
Intereting Posts
Свойство Kotlin: «Тип параметра свойства должен использоваться в типе приемника» Android.database.CursorIndexOutOfBoundsException: запрошенный индекс -1 с размером 2 Curl-анимация (например, открытая страница книги) в android Пользовательский интерфейс планшета не работает в моем приложении Фиксированные прокрутки / перетаскивания заголовков в jQuery mobile Как вы рисуете текст с рамкой на MapView в Android? Android – в App Purchase – вам нужно добавить разрешение BILLING на ваш APK Хранение файла в базе данных Android (Пользовательский поставщик содержимого) с использованием поля _data – v1.6 Фильтр Intent для загрузки вложений из приложений gmail на Android Вернуть значение после метода Activity.runOnUiThread () Совместное использование базы данных sqlite между несколькими действиями Android Нужно ли добавлять app.initialize () во все мои html-файлы в проект cordova / phonegap Android: Process.myTid () VS Thread.currentThread (). GetId () «OnClick» в AutocompleteTextView вызывает ошибку Строгое кодирование строки влияет на производительность?