Ich habe gerade festgestellt, dass alle meine EditText
-Felder in meiner App die Auswahlanker nicht korrekt anzeigen. Zum Beispiel:
Wie auch immer, ich erwarte, dass die richtigen Anker wie folgt erscheinen:
Ein typisches Beispiel für ein betroffenes EditText
in meiner App:
Beachten Sie auch, dass die Hover-Ansicht "Einfügen" in meiner App einen seltsamen weißen Rand hat, aber in anderen Apps ist sie vollständig transparent.
Ich vermute eine Art von Thema Problem, da es mehrere Bildschirme in meiner App betrifft, aber ich kann keine Informationen darüber finden, welche Attribute dies verursachen können.
AKTUALISIEREN
Also, ich habe einige viel zu viele Stunden Debugging der EditText
, TextView
und Editor
Framework-Klassen vergebens verbracht. Alles erscheint , um wie erwartet zu funktionieren.
Ich habe eine neue leere Activity
in der gleichen Anwendung mit dem folgenden Layout erstellt:
In meinen anderen Bildschirmen verwende ich die AppCompat-Bibliothek und verwandte Themen, aber in diesem Activity
habe ich das Thema und die Aktivität als Android-Content Activity
mit dem integrierten Material-Theme überschrieben:
Es ist mein Verständnis, auf diese Weise setTheme
aufzurufen und alle möglichen Anpassungen aus meiner App styles.xml
zu überschreiben. Trotzdem sehe ich das:
Art von Verlust hier noch ...
Die Lösung ist android:popupBackground
zu entfernen, die ich in meinem Thema eingestellt hatte:
Ich hatte dies eingestellt, um alle Drop-down-Hintergründe Spinner
auf die gleiche Farbe zu stellen. Aus irgendeinem Grund stört es das Textauswahl-Popup. Darüber hinaus hat das Aufrufen von Activity.setTheme
diese Eigenschaft anscheinend nicht überschrieben, was zu einiger Verwirrung geführt hat.
Die Klasse, die für das Zeichnen der Handles zuständig ist, ist der SelectionModifierCursorController, der in der Klasse Editor lebt. Damit die Cursor nicht angezeigt werden (linker und rechter Auswahlcursor), muss hide für die Instanz aufgerufen worden sein. Dies geschieht beispielsweise, wenn sich der Berührungsmodus für die Ansicht ändert.
Oder wenn die TextViews (EditTexts im Grunde Textansichten sind) textCanBeSelected gibt false zurück: Ссылка
Oder ein paar andere Situationen, aber lassen Sie uns hier für die Untersuchung beginnen.
Um sicherzustellen, dass nichts mit dem Touch-Modus ausgeschaltet ist, könntest du isInTouchMode in einem EditText aufrufen, wo es funktioniert und wo nicht?
Um sicherzustellen, dass die textCanBeSelected korrekt ist, könnten Sie diese Methode in einem EditText aufrufen, wo sie funktioniert und wo sie nicht funktioniert.
Wenn alles gut mit beiden ist, müssen wir weiter graben;)
Tags und Links android android-edittext