Próbuję utworzyć Spinners, które wyglądają tak samo we wszystkich wersjach Androida z powrotem do Froyo. W tym celu używam HoloEverywhere. Niektóre z tekstów przedmiotu na spinner to więcej niż jedna linia i chciałbym, żeby się zawinęły.Spinner z elementami wieloliniowymi nakłada się na wybrany element wyświetlania na Froyo
Użycie domyślnego układu, android.R.layout.simple_spinner_dropdown_item
lub HoloEverywhere's drop-in replacement for it powoduje elipsyzację tekstu zamiast jego zawijania.
Biorąc układ w HoloEverywhere jako punkt wyjścia do niestandardowy układ z singleLine
zestaw do false
, ellipsize
zestaw do none
i layout_height
zestaw do wrap_content
nie pomaga, tekst jest nadal odcięta.
I może uzyskać tekst zawijać poprawnie w rozwijanym przez owijanie TextView
w LinearLayout
, ale na Froyo urządzeń ten bałagan wyświetlanie pozycji wybrany:
ten metoda działa dobrze na nowszych urządzeniach. Rozmieszczone elementy są dobrze widoczne na wszystkich urządzeniach. Ale Froyo powoduje, że ten dziwny tekst nakłada się, gdy używam niestandardowego układu elementów. Każda selekcja jest po prostu ułożona na ostatnim.
To pytanie: Spinner does not wrap text -- is this an Android bug? o zawijaniu tekstu w Spinners sugeruje, że jedynym sposobem na to jest odtworzenie stylizacji od zera bez dziedziczenia, ale to brzmi szalenie i podatnie na problemy.
my_simple_list_item_1.xml:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="300dp"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/android:text1"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:ellipsize="marquee"
android:layout_gravity="center_vertical"
android:singleLine="false"/>
</LinearLayout>
Java:
import org.holoeverywhere.widget.Spinner;
spinner1.setAdapter(ArrayAdapter.createFromResource(this,
R.array.array_of_strings, R.layout.my_simple_list_item_1));
Uwaga: istnieją dwa pliki stylu, jeden dla elementów listy rozwijanej i jeden dla wybranego elementu listy (który brzmi jak ten, który się nakłada). Czy wyraźnie ustawiasz wybrany styl? – blahdiblah
Czy próbowałeś po prostu nadać układowi tło, aby nawet gdyby się nakładało, nie zobaczysz, co jest pod spodem? – blahdiblah
Hej tam Bladiblah, dzięki za odpowiedź. Nie wierzę, że ustawiam wybrany styl jawnie. Jednak, żeby sprawdzić, co się dzieje, zrobiłem to z tła. Naprawdę miałem nadzieję, że to zadziała, ale niestety układał się w niewłaściwy sposób. Jeśli umieściłbym tło w tekście, zobaczyłbym tylko pierwszy możliwy do wybrania element w przędzarce (lub pierwszym elemencie w tablicy). Wygląda na to, że podczas układania nowych rzeczy wychodziło poniżej starych rzeczy, więc dodanie tła pozwoliło mi tylko zobaczyć ten pierwszy wybór. –