Spinner mit mehrzeiligen Elementen überlappt die Anzeige ausgewählter Objekte auf Froyo

8

Ich versuche Spinner zu erstellen, die auf allen Versionen von Android gleich aussehen wie Froyo. Zu diesem Zweck verwende ich HoloEverywhere . Ein Teil des Drehfeld-Item-Textes besteht aus mehr als einer Zeile, und ich möchte, dass er umbrochen wird.

Verwenden Sie das Standardlayout android.R.layout.simple_spinner_dropdown_item oder HoloEverywhere's Drop-in-Ersatz dafür , Ellipse den Text, anstatt es zu wickeln.

Wenn Sie das Layout von HoloEverywhere als Ausgangspunkt für ein benutzerdefiniertes Layout mit singleLine auf false , ellipsize auf none und layout_height auf wrap_content setzen, hilft der Text nicht ist immer noch abgeschnitten.

Ich kann den Text korrekt in das Dropdown-Menü umbrechen, indem er das TextView in ein LinearLayout einfügt, aber auf Froyo -Geräten scheitert dies an der Anzeige von der ausgewählte -Element:

Diese Methode funktioniert auf neueren Geräten einwandfrei. Die Dropdown-Element-Layouts sind auf allen Geräten in Ordnung. Aber Froyo macht diese seltsame Textüberlappung durch, wenn ich ein benutzerdefiniertes Dropdown-Element-Layout verwende. Jede Auswahl wird nur über die letzte gestapelt.

Diese Frage:   Spinner umschließt keinen Text - ist dies ein Android-Bug? über Textumbruch in Spinners schlägt vor, dass es nur möglich ist, das Styling von Grund auf neu zu erstellen, ohne zu erben, aber das klingt verrückt und anfällig für Probleme.

my_simple_list_item_1.xml:

%Vor%

Java:

%Vor%     
Michael Alan Huff 02.04.2013, 00:23
quelle

2 Antworten

8

Ich habe eine Lösung gefunden. Der Text wurde umgebrochen, da die ursprüngliche Darstellung der Spinner nur Textansichten verarbeiten konnte, und ich hatte eine andere Lösung gefunden, die die Verwendung eines linearen Layouts empfahl. Dies ließ das Dropdown des Spinner korrekt aussehen. Wie sich herausstellt, haben Adapter eine Ressource mit dem Namen setDropDownViewResource (), mit der Sie eine andere Ansicht für das Dropdown-Menü festlegen können als in der Auswahl des Drehfelds angezeigt wird.

%Vor%

In diesem Beispiel ist das simple_list_item die Standardansicht, die von android bereitgestellt wird, und mY_simple_list_item ist

%Vor%

Nun wird der Text innerhalb der Dropdown-Ansicht des Drehfelds UND in der Auswahl der Drehfelder umbrochen.

    
Michael Alan Huff 12.04.2013, 22:54
quelle
0

Klingt, als würdest du bergauf fahren. Meine Vermutung ist, dass Ihr Kunde nie 100% zuverlässige und konsistente Ergebnisse mit umschlossenem Text erhalten wird.

Siehe: Spinner umschließt keinen Text - ist dies ein Android-Fehler?

    
Thomas W 02.04.2013 00:33
quelle