Подтвердить что ты не робот

Обнаружение прокрутки для каждой строки списка

У меня есть список видеороликов, расположенных на SD-карте. На данный момент мне просто нужна помощь в создании жестов или распознавания проводов для каждой строки в представлении списка. Благодаря этому вопросу в stackoverflow Обнаружение жестов Fling на макете сетки, я реализовал жест в списке. Теперь он легко обнаруживает, когда пользователь щелкает в правильном направлении или влево. Но этот жест для всего списка. Я просто хочу знать, как я могу реализовать это обнаружение для отдельных строк. Например, приложение теперь делает тост, который печатает "Right Swipe", "Left Swipe". Я просто хочу сделать это как "Right Swipe on row no 1", "Left Swipe on Row no 3" и т.д. Надеюсь, мой вопрос был ясен.

С нетерпением ждем некоторых полезных ответов. Благодаря

4b9b3361

Ответ 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. Я надеюсь, что это поможет