Обнаружение прокрутки для каждой строки списка
У меня есть список видеороликов, расположенных на SD-карте. На данный момент мне просто нужна помощь в создании жестов или распознавания проводов для каждой строки в представлении списка. Благодаря этому вопросу в stackoverflow Обнаружение жестов Fling на макете сетки, я реализовал жест в списке. Теперь он легко обнаруживает, когда пользователь щелкает в правильном направлении или влево. Но этот жест для всего списка. Я просто хочу знать, как я могу реализовать это обнаружение для отдельных строк. Например, приложение теперь делает тост, который печатает "Right Swipe", "Left Swipe". Я просто хочу сделать это как "Right Swipe on row no 1", "Left Swipe on Row no 3" и т.д. Надеюсь, мой вопрос был ясен.
С нетерпением ждем некоторых полезных ответов.
Благодаря
Ответы
Ответ 1
Взгляните на этот ответ и используйте pointToPosition метод внутри onFling
Событие
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
try {
Toast.makeText( listAdapter.getItem( listView.pointToPosition(Math.round(e1.getX()), Math.round(e1.getY())).toString());
return super.onFling();
} catch( Exception e ) {
// do nothing
}
}
Ответ 2
Я использую подход для каждого элемента в своем решении - посмотрите здесь
Мой код обнаружения салфетки может немного отличаться от стандартного обнаружения салфетки, но он отлично работает для меня. И я использую прикрепленные теги для получения данных, связанных с товаром.
Надеюсь, что это поможет, но если у вас есть вопросы, просто дайте мне знать, и я попытаюсь объяснить более подробно.
Ответ 3
В соответствии с моим мнением используется Boolean для элемента, когда этот элемент коснулся значения true, используя onTouchListener,
ListItem.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent event) {
click=true;
return click;
}
});`
Затем вы можете переопределить это:
@Override
public boolean dispatchTouchEvent(MotionEvent ev){
super.dispatchTouchEvent(ev);
Log.v("Inside", "=====Dispatch Event===");
if(click){
Log.v("Inside", "=====Dispatch Event=T==");
click=false;
return gestureDetector.onTouchEvent(ev);
}else{
return false;
}
}
Ответ 4
Я думаю, что вы ищете SwipeView (или, возможно, даже ViewFlow), а не стандартное обнаружение жестов Android.
Ответ 5
Этот вопрос старый, но к счастью, Джейк Уортон предоставил код, выпущенный для ICS здесь; это должно позволить вам прокручивать отдельные строки: https://github.com/JakeWharton/SwipeToDismissNOA
Ответ 6
Мы внедрили обнаружение попадания в строку для выявления действий и отклонения элементов здесь https://github.com/47deg/android-swipelistview. Я надеюсь, что это поможет