Обнаружение пролистывания для каждой строки списка - PullRequest
21 голосов
/ 06 июля 2011

У меня есть список видео, расположенных на SD-карте. На данный момент мне просто нужна помощь в создании жестов или распознавании пролистывания для каждой строки в представлении списка. Благодаря этому вопросу в stackoverflow Обнаружение жестов Fling на макете сетки , я реализовал этот жест в просмотре списка. Теперь он легко определяет, когда пользователь проводит пальцем в правильном или левом направлении. Но этот жест для всего списка. Я просто хочу знать, как я могу реализовать это обнаружение пролистывания для отдельных строк. Например, приложение теперь делает тост, который печатает «Размах влево», «Размах влево». Я просто хочу сделать это как «Размах влево по ряду № 1», «Размах влево по ряду № 3» и т. Д. Надеюсь, мой вопрос был ясен.

С нетерпением жду некоторых полезных ответов. Спасибо

Ответы [ 6 ]

4 голосов
/ 16 августа 2012

Взгляните на этот ответ и используйте 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
    }
}
1 голос
/ 17 января 2012

В соответствии с моим мнением: Использовать логическое значение для элемента, Когда этот элемент касается, установить как истинное, Используя 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;
}

}
1 голос
/ 07 декабря 2011

Я использую подход для каждого элемента в своем решении - посмотрите здесь Мой код обнаружения может сильно отличаться от стандартного обнаружения, но он отлично работает для меня.И я использую прикрепленные теги для получения данных, связанных с предметом.Надеюсь, это поможет, но если у вас есть какие-то вопросы, просто дайте мне знать, и я постараюсь объяснить более подробно.

0 голосов
/ 06 марта 2013

Мы реализовали обнаружение прокрутки в строке для выявления действий и отклонения элементов здесь https://github.com/47deg/android-swipelistview. Надеюсь, это поможет

0 голосов
/ 03 января 2013

Этот вопрос старый, но, к счастью, Джейк Уортон опубликовал здесь некоторый код, выпущенный для ICS;Это должно позволить вам провести отдельные строки: https://github.com/JakeWharton/SwipeToDismissNOA

0 голосов
/ 06 июля 2011

Я думаю, что вы ищете SwipeView (или, возможно, даже ViewFlow ), а не стандартное обнаружение жестов Android.

...