![]() |
FMX : onTap vorherigen Eintrag selektiert
Mir ist gerade aufgefallen, das wenn man auf TListView onTap nur kurz draufdrückt in itemindex noch der letzte Eintrag enthalten ist.
D.h man muss schon etwas länger draufdrücken bis man sieht das optisch die Zeile auch markiert ist. Ist das so gewollt oder mache ich hier in der Abfrage etwas falsch?
Code:
ich habe mir auch einmal beides ausgeben lassen (addlog ist eine Funktion von mir )
procedure Tfmain.lvbilderTap(Sender: TObject; const Point: TPointF);
{$IF DEFINED(ANDROID)} var fName : String; Intent : JIntent; URI : Jnet_Uri; {$ENDIF} begin // Android auf TAP reagieren {$IF DEFINED(ANDROID)} if lvbilder.Selected <> nil then begin fname := lvbilder.items[lvbilder.ItemIndex].detail; URI := TJnet_Uri.JavaClass.parse(StringToJString('file:///' + fName));
Code:
und in beiden steht 0 obwohl ich die zweite Zeile angeklickt habe.
addlog(format('<%d><%d>',[lvbilder.Selected.Index,lvbilder.ItemIndex]));
Ich öffne danach einen Bildbetrachter und wenn ich zurück zu meiner APP wechsle, ist die korrekte Zeile markiert. D.h es gibt einen Delay zwischen onTap und dem echten markieren der Zeile. |
AW: FMX : onTap vorherigen Eintrag selektiert
Zitat:
> Reihenfolgeproblem, nicht Zeitverzögerung, oder falsches Event benutzt * beim Drücken wird erst das Event ausgeführt und danach der Code zum Setzen des Index (das könnte man aber als bestimmt Bug ansehen und melden, damit es in paar Jahren behoben wird) * oder beim Draufdrücken das OnTab, aber der Index erst beim loslassen |
AW: FMX : onTap vorherigen Eintrag selektiert
Irgendwie habe ich auch den Eindruck es fühlt sich nicht sauber an.
z.b sind die Animationen verschieden. Mal erscheint eine Animation für das drücken des Fingers, mal nicht. als wäre etwas mit den Gestures nicht korrekt. Ich hatte vorher auf LongTap eine Löschfunktion. Diese habe ich nun auf canswipetodelete gelegt und auf LongTap auch das öffnen von dem Eintrag gelegt. So kann ich den Anwender wenigstens sagen "halt lange Finger drauf = geht Bild auf". |
AW: FMX : onTap vorherigen Eintrag selektiert
Solche Inkonsistenzen gibt es überall, auch schon seit vielen vielen sehr vielen Jahren in der alten VCL, bzw. teilweise bereits im eigentlichen Control des Windows.
Teilweise reagieren Tastendrückenaktionen im KeyDown/MouseDown und wo anders im KeyUp/MouseUp. Eigentlich reagieren Buttons auf MouseUp und nur wenn dann der Zeiger noch über dem Button liegt, aber dann kommen die SpeedButtons und Button-Komponenten von Fremdherstellern (z.B. DevExpress) haben auch mal ihr eigenes Verhalten. Teilweise reagieren Komponenten auch noch unterschiedlich auf "Buchstaben" oder Enter/ESC ... Eines im KeyDown und das Andere im KeyUp. usw. Ich hatte mal den Spaß, dass ein Fenster mit F2 auf ging und weil es "einfach" zu merken war, konnte man das Fenster mit F2 auch wieder "mit Übernahme der Default-Auswahl, egal was wohin der Nutzer schon gescrollt hat" schließen. (oder ESC und Enter mit anderer Auswahl) Fenster auf im KeyUp (ging bisher immer problemlos) und das neue Default-Schließen aber im KeyDown (weil dort schon alle anderen Tastenaktionen dieser Form lagen), woraufhin das Fenster sofort wieder auf ging, wenn man schnell die Defaultauswahl übernahm. :wall: |
AW: FMX : onTap vorherigen Eintrag selektiert
ja leider ein Problem seit vielen Jahren.
Ich habe nun in onTap mir von
Code:
den Itemindex besorgt.
const Point: TPointF
hier im Forum war auch mal ein Thread dazu. habe ich dann über die Google Suche gefunden :-) weil onlongTap hat teilweise auch nicht funktioniert, weil die Listview darauf gar nicht mehr reagiert hat. D.h erster LongTap hat die Zeile markiert, die Animation ausgeführt und das Event ausgelöst onGesture Ich öffne darin das Bild per TAndroidHelper.Activity.startActivity(). Wenn ich dann aus dem Bildbetrachter zurückkomme und die nächste Zeile anklicke, reagiert das Listview nicht. Keine Animation, kein Event, gar nichts. Ich muss erst in die APP drücken ( z.b freien Bereich ) und danach per LongTap wieder auf das Listview. Leider nicht zu 100% reproduzierbar aber in 7/10 Fällen. Das APP wird nachher von Monteuren benutzt. Die machen die Tablets klein wenn das so funktioniert :lol: |
AW: FMX : onTap vorherigen Eintrag selektiert
Hast Du es mal mit OnClickEx probiert, statt OnTap ?
|
AW: FMX : onTap vorherigen Eintrag selektiert
onclick hat das Problem das sofort der Eintrag ausgewählt wird und nicht mehr gescrollt werden kann.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz