EditText Auswahl Anker fehlen

9

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:

%Vor%

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:

%Vor%

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:

%Vor%

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 ...

    
Jeff Mixon 16.07.2015, 21:36
quelle

2 Antworten

1

Die Lösung ist android:popupBackground zu entfernen, die ich in meinem Thema eingestellt hatte:

%Vor%

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.

    
Jeff Mixon 24.07.2015, 21:33
quelle
0

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;)

    
JohanShogun 22.07.2015 00:03
quelle

Tags und Links