#android
#Android
Вопрос:
Я пытаюсь выяснить, как добавить OnGestureListener или каким-либо другим способом обнаружить перетаскивание по экрану к кнопке или какому-либо другому виджету, который можно добавить в представление. Я пытался выяснить, как это сделать некоторое время, и я не могу. Я видел и успешно смог сделать это для activity. Кто-нибудь может объяснить это для меня, потому что у меня, похоже, гораздо больше проблем, чем я думал, с этим. Спасибо.
Ответ №1:
Я предполагаю, что вы уже прошли черезhttp://developer.android.com/resources/articles/gestures.html. Хитрость в том, что вы можете разместить его GestureOverlayView
в виде прозрачного слоя поверх другого View
. Затем вы можете интерпретировать любые обнаруженные жесты как принадлежащие базовому View
.
В статье они показывают вам макет, подобный этому:
<android.gesture.GestureOverlayView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@ id/gestures"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gestureStrokeType="multiple"
android:eventsInterceptionEnabled="true"
android:orientation="vertical">
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</android.gesture.GestureOverlayView>
Затем любые обнаруженные жесты могут быть интерпретированы как исходящие из ListView. В вашем случае замените ListView своей кнопкой, и все должно быть готово.
Комментарии:
1. Такой способ работает, но это вызывает проблему, потому что он автоматически поглощает событие касания, хочу я этого или нет. Мне нужен способ, чтобы, если это не операция перетаскивания, событие передавалось за пределы моего представления жестов.
2. Это должно выполнить достойную работу при условии, что вы правильно укажете атрибуты
orientation
иgestureStrokeType
(как показано выше). Он должен перехватывать событие касания, чтобы обнаружить жест, но он ДОЛЖЕН пропустить его, если оно не принято в качестве жеста. Вы включили эти атрибуты?
Ответ №2:
Звучит так, как будто вы должны выполнять перетаскивание,
Комментарии:
1. Я не могу использовать это в Android 2.2, хотя или 2.1 я мог бы? Это только в новой версии 3.0, верно?