So können Sie Textinhalte in den ActionBarSherlock-Navigationsbereich einbetten

9

Ich versuche, den Textinhalt meines ActionBar-Navigationsdrehfelds zu umbrechen (ich verwende ActionBar Sherlock). Es scheint, dass mein Spinner die Breite der Elemente in der Dropdown-Liste nimmt.

Wie kann ich den ausgewählten Gegenstand im Kreisel entsprechend seiner Breite "wickeln"? Ein Beispiel findet sich im Aktionsfeld Spooler von GMaps.

    
kaffein 24.09.2012, 17:03
quelle

2 Antworten

1

UPDATE:

Laden Sie mein Beispielprojekt hier herunter: Spinner-Breitentest (Dropbox-Ordner) (Es enthält beide Lösungen in dieser Antwort).

Da das Unterschneiden (Buchstabenabstand) der Zeichen abhängig vom Text unterschiedlich ist, änderte sich die Breite des Zahlenauswahlfelds auch in der Breite, die ich früher (unten) angegeben habe

Anstatt den Titel mit einem Teilstring zu versehen, setzen Sie einfach die Breite des TextView in Pixel wie folgt:

%Vor%
  • Der Text wird jetzt abgeschnitten und endet mit "..".

  • Die Breite des Drehfelds bleibt gleich.

  • Sie können für die Dropdown-Liste und den Spinner

  • eine andere Breite festlegen
  • Sie benötigen noch einen benutzerdefinierten SpinnerAdapter, aber Sie benötigen kein benutzerdefiniertes
    SpinnerItem-Klasse, geben Sie dem Adapter einfach ein Array String [].

  

spinner.setAdapter (neu   TruncatedSpinnerAdapter (stringArray)); // String []

In TruncatedSpinnerAdapter:

%Vor%

Die Antwort vor dem Update:

Sie können die Textsorte umbrechen, indem Sie einen benutzerdefinierten SpinnerAdapter erstellen, in dem Sie die Länge des Textes steuern, den Sie in der Ansicht des Drehfelds und in der Dropdown-Ansicht des Drehfelds anzeigen.

%Vor%

füllt den Adapter mit einer benutzerdefinierten SpinnerItem-Klasse, die einen verkürzten Titel für die Spinner-Ansicht halten und zurückgeben kann.

%Vor%

Mit der SpinnerItem-Klasse können Sie die Länge des Titels steuern, der in der Drehfeldelementansicht angezeigt wird, indem Sie beim Erstellen des SpinnerItem-Objekts eine MAX-Titellänge festlegen.

%Vor%

Fügen Sie dann den SpinnerAdapter zum Spinner

hinzu %Vor%

ActionBar: Spinner in menu.xml Beispiel

%Vor%     
TouchBoarder 06.10.2012 12:14
quelle
1

Eigentlich versucht Android, getView () für alle Elemente aufzurufen, und legt die Breite des Spinner mit der größten Breite fest. Bitte beachte meine Lösung in einem anderen Thread. Ссылка

    
Wei Jiang 12.03.2013 08:49
quelle