2012-04-20 3 views
0

ОК, в первую очередь, я не уверен, что я делаю это правильно, так что я объясню, что я хочу от моего приложения:Получить виджет на X и Y cordiantors

У меня есть экран, который разбит на два - слева список групп (для более конкретных - ExpandableListView), а слева у меня есть все виды перетаскиваемых кнопок. Я хочу, чтобы пользователь перетаскивал каждую кнопку в какую-то группу, а затем добавляю текст кнопки в качестве дочернего элемента этой группы.

Итак, что я пытался сделать, это добавить touchListener, используя (setOnTouchListener) для каждой кнопки, и реализовать там, где пользователь перетащил его, так что теперь у меня есть X и Y, где пользователь выпускает btn, как я могу знаете, какой элемент списка находится в точке (x, y)?

и если это правильный способ?

Thx.

Edit: OK, для будучи более ясно, я добавляю снимок экрана:

screen snapshot

, что я хочу, чтобы перетащить кнопку в какой-то элемент в списке и что-то делать с элементом, который был выбран (можно сказать, переименовать его)

ответ

1

ОК, я понял, что если кто-нибудь когда-нибудь зайдет сюда, вот так я решил это: перебирать всех детей списка и проверить, является ли это p = (x , y) находится в ударе rect:

int count = draggTo.getChildCount(); 
for (int i = i; i < count; i--) { 
    View child = draggTo.getChildAt(i); 
    child.getHitRect(frame); 
    if (frame.contains(x, y)) { 
     return draggTo.getFirstVisiblePosition() + i; 
    } 
} 
+0

thanks @shem getFirstVisiblePosition() + i это действительно полезные идеи .. –

Смежные вопросы