В данном вопросе пользователь столкнулся с проблемой, когда жесты "LongTap" и "PressAndTap" не срабатывают для элементов TListView в приложении FireMonkey, предназначенном для нескольких устройств, на устройствах Android. Пользователь уже настроил обработчик жестов для TListView, но при тестировании на устройстве Android событие OnGesture не срабатывало.
Подтвержденный ответ:
Проблема может быть связана с неправильной настройкой жестов в свойстве InteractiveGestures компонента TListView. Важно убедиться, что необходимые жесты включены в этом списке. Также стоит отметить, что обработчик жестов должен быть установлен для самого TListView, а не для отдельных элементов списка. В коде обработчика, предоставленного пользователем, все написано верно, но проблема может заключаться в настройках проекта или в версии используемого компонента управления жестами.
Пример кода:
procedure TForm1.ListViewGesture(Sender: TObject; const EventInfo: TGestureEventInfo; var Handled: Boolean);
begin
case EventInfo.GestureID of
igiPressAndTap: begin
// Действия при нажатии и удержании
ShowMessage('PressAndTap');
end;
igiLongTap: begin
// Действия при долгом нажатии
ShowMessage('LongTap');
end;
end;
Handled := True;
end;
Не забудьте установить это событие для вашего TListView в среде разработки.
Альтернативный ответ (предполагаемый пользователем):
Необходимо убедиться, что в свойстве Touch компонента TListView в Object Inspector выбраны нужные жесты в свойстве InteractiveGestures. Пример настройки в Object Inspector представлен на изображении, которое было предоставлено в комментариях.
Кроме того, в обработчике событий жестов необходимо обращать внимание на выбранный элемент списка через свойство Selected компонента TListView, чтобы выполнить необходимые действия при срабатывании жеста.
Рекомендации по устранению проблемы:
Перепроверить настройки InteractiveGestures для TListView.
Убедиться, что обработчик жестов правильно установлен для TListView, а не для отдельных элементов списка.
Обновить проект до последней версии возможностей обработки жестов, если используется старая версия Delphi.
Проверить наличие ошибок в логировании приложения на предмет сообщений о возможных конфликтах или несоответствиях версий компонентов.
Обратиться к официальной документации Embarcadero по работе с жестами в FireMonkey, следуя инструкциям, как это было сделано в проекте, успешно работающем на XE7, и адаптировать проект под версию Rio (10.3.2).
Заключение:
Проблема, вероятно, связана с настройкой жестового управления в FireMonkey приложениях. Важно правильно настроить компонент TListView и использовать корректный код для обработки событий жестов. Следуя описанным шагам, вы сможете устранить возникшую проблему.
Пользователь столкнулся с технической проблемой в приложении FireMonkey, где жесты LongTap и PressAndTap не активируются для элемента TListView на устройствах Android из-за возможной неправильной настройки или несоответствия версий компонентов.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.