2015-05-27 2 views
2

У меня проблема с dragndrop на android. У меня есть recicleview, и когда пользователь нажимает на какой-то элемент, другой список показывает выше recicleview, и элемент начинает dragndrop. После этого элементы для второго списка видят загрузку и отображение на экране, а в getview все элементы устанавливаются OnDragListener. Проблема в том, что во втором списке элементов списка отображается после запуска dragndrop, а OnDragListener не работает. Но OnDragListener работает, если элементы были добавлены перед запуском DragNDrop. Кто-нибудь знает, как решить эту проблему?DragNDrop на предмет, который загружается после запуска dragndrop

ответ

2

Хорошо, я решил эту проблему. Поскольку я использую CustomListView, я создал метод isOnChild внутри моего CustomListView. И когда я получаю событие, я вызываю этот метод и проверяю все дочерние. Если он находит дочернее представление, он передает DragEvent в это дочернее представление. Если кто-то знает другое решение, я с удовольствием прочитаю ваши варианты

public boolean isOnChild(View v, DragEvent event){ 
    int count = getChildCount(); 
    int x = (int) event.getX(); 
    int y = (int) event.getY(); 
    for(int i = 0; i < count; i++){ 
     View view = getChildAt(i); 
     int left = view.getLeft(); 
     int right = view.getRight(); 
     int top = view.getTop(); 
     int bottom = view.getBottom(); 
     if(left < x && x < right && bottom > y && y > top){ 
      view.dispatchDragEvent(event); 
      return true; 
     } 
    } 
    return false; 
} 
Смежные вопросы