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

Как расширить зону касания вида

У меня есть вертикаль LinearLayout. Он должен действовать как быстрый прыжок. Таким образом, ширина очень мала, а высота соответствует почти всей высоте экрана. Когда я касаюсь его и передвигаюсь внутри, все в порядке. Это означает, что мой onTouchEvent() называется, и я могу получить (и следовать) положение пальца. Но так как панель не очень широкая, пользователь может легко дрейфовать за пределами этого вида. Таким образом, было бы необходимо, чтобы пользователь продолжал движение, даже если вне представления. На самом деле то же самое, что и ListView.

Я не знаю, почему a ListView onTouchEvent() вызывается даже вне ListView, но не в случае моего LinearLayout. Я отследил его до dispatchTouchEvent(). Здесь ситуация такая же, что метод всегда вызывается для ListView (даже если он доступен снаружи), но не в случае LinearLayout (при перемещении за пределы).

Я был бы очень рад, если бы кто-нибудь мог дать мне подсказку. Большое спасибо!

Бернд

4b9b3361

Ответ 1

Вы можете использовать функцию Android TouchDelegate. Он поддерживает большую зону касания для отдельных видов. Вот пример: fooobar.com/questions/75921/...

Ответ 2

Я думаю, что вам следует попытаться увеличить заполнение вида со всех сторон, чтобы при щелчке рядом с представлением в области заполнения метод ontouch или onClick будет называться

android:padding="10dp"