2

Ich habe Probleme, die Position eines Eingabecursors zu ändern. Gibt es eine Möglichkeit für mich, die Position manuell zu ändern?Wie ändere ich die Cursorposition eines Eintrags manuell in Xamarin-Formularen?

Ich habe einen versteckten Eintrag, der an ein Label gebunden ist, das TotalAmount (eine Zahl) anzeigt. Das Label befindet sich in einem StackLayout mit einem TapGestureRecognizer = "OnTapped". Die OnTapped-Funktion setzt den Fokus auf den ausgeblendeten Eintrag, so dass der Benutzer eine Nummer eingeben kann. Aber es gibt auch eine Schaltfläche in derselben Ansicht, auf die der Benutzer klicken kann, und eine feste Nummer wird zu TotalAmount hinzugefügt. Wenn der Benutzer nun das StackLayout erneut anklickt (nachdem er die Schaltfläche "fixed number" verwendet hat) und der Fokus gesetzt ist, befindet sich die Cursorposition auf der Vorderseite, nicht am Ende, wie ich es möchte. Dies geschieht nur auf Android, nicht auf IOS oder Windows.

Ich habe versucht, ein benutzerdefiniertes Rendern zu verwenden und OnElementPropertyChanged außer Kraft zu setzen, aber ich finde keine Möglichkeit, es dort zu ändern. Ich habe auch versucht, OnFocusChanged zu überschreiben, aber es wird nie aufgerufen.

Alle Tipps, Beispiele oder Ratschläge sind willkommen.

+0

Warum Sie den Eintrag nicht verwenden setzen Ihre Nummer angezeigt werden? – Matt

+0

Normalerweise gibt es einen Grund, keinen Eintrag wie Formatierung, Maskierung usw. zu verwenden, der Eintrag ist in vielerlei Hinsicht ziemlich begrenzt – Xander

Antwort

2

Auf Android, verwenden Sie die SetSelection Methode, um die Cursorposition

// both arguments should match to just set the cursor position 
textview.SetSelection(1,1); 
+0

Perfekt, danke! – LittleDragon