Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Gestures unter iOS (https://www.delphipraxis.net/185992-gestures-unter-ios.html)

omp 24. Jul 2015 19:10

Gestures unter iOS
 
Hallo.
Ich kämpfe jetzt schon länger mit den Gesten unter iOS und drehe mich im Kreis.

Eine Mobile-App mit mehreren Seiten, die mittels TTabControl realisiert sind. Zurück zur letzten Seite soll man mittels Wischen nach rechts gelangen. Dem TabControl ist dafür ein GestureManager zugewiesen, Touch-Gestures-Standard-Right ist markiert. Im Event OnGesture wird EventInfo ausgewertet und bei sgiRight wird zum letzten Tab zurückgesprungen.
Soweit, so richtig. Unter Android funktioniert es auch zuverlässig.

Unter iOS ist es noch ok, wenn sich ein ListView auf dem Tab befindet. Anders ist es beispielsweise bei einer enthaltenen ListBox oder einer VerticalScrollbox als Hauptelement auf dem Tab:
1. Ist ListBox.HitTest=true, dann funktioniert das vertikale Scrollen der Listbox, TabControl.OnGesture wir aber nicht aufgerufen.
2. Ist ListBox.HitTest=false, dann funktioniert OnGestute, das Scrollen aber nicht.

ListView scheint also nicht behandelte Gesten an die Parents weiterzugeben. ListBox und Scrollbox aber nicht. Ich finde hier keine Lösung. Erster Gedanke ist jetzt vermutlich, die OnGesture-Verarbeitung nicht nur im TabControl, sondern auch in der jeweiligen ListBox zu verarbeiten. Aber auch das funktioniert nicht.

Besten Dank, Harald

Rollo62 25. Jul 2015 07:48

AW: Gestures unter iOS
 
Liste der Anhänge anzeigen (Anzahl: 1)
hallo omp

Ich schlage mich mit ähnlichen Problemen rum.

Hier ein Demo was wohl deinen Fall widerspiegelt.

Ich würde mir auch wümnschen das sich Fmx auf allen Platformen zumindest gleich verhält, aber
man wird wohl tief debuggen müssen und von Hand einen Workaround dafür finden müssen.

Rollo

omp 26. Jul 2015 15:27

AW: Gestures unter iOS
 
Es kann so einfach sein, wenn mans weiß.
Gesten werden nur an Parent weitergegeben, wenn Touch.InteractiveGestures leer ist. Eventuell auch die Gestures.Standard.

Bei TListView ist Touch.InteractiveGestures per Vorgabe = [].
Bei TListBox u.a. ist Touch.InteractiveGestures = [Pan].

Also entweder im Objektinspektor Pan demarkieren oder in FormCreate:
{$IFDEF iOS}
ListBox1.Touch.InteractiveGestures := [];
{$ENDIF}


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:11 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz