2012-10-25 10 views
10

Niedawno właśnie zaimplementowałem motyw holo w mojej aplikacji na Androida. Po wykonaniu tej czynności, każda posiadana przeze mnie przędzarka, w której rozwijany element ma wiele linii, nie będzie zawijać tekstu do wielu linii. Każdy upuszczony element jest przechowywany w jednej linii i przycięty do określonej długości.Temat Android Holo nie obejmuje elementów rozwijanych z wieloma liniami podziału

Oto mój xml dla rozwijanej źródło turbinki

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@android:id/text1" 
style="?android:attr/spinnerDropDownItemStyle" 
android:singleLine="false" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:ellipsize="none" /> 

To działa na starszych wersji Androida ICS i przed tematem holo.

Czy ktoś jeszcze napotkał ten problem?

+0

znalazłeś jakieś rozwiązanie tego? –

+0

Mam ten sam problem. Posiadam multilinówki, z wyjątkiem wersji 4.0.4. Na pewno chciałbym znaleźć obejście tego błędu. –

+0

Zobacz tę odpowiedź: http://stackoverflow.com/questions/14139106/spinner-does-not-wrap-text-is-this-an-android-bug/14392369#14392369 –

Odpowiedz

0

Jak wspomniał w: Spinner does not wrap text -- is this an Android bug?

Myślę, że jest to błąd w systemie Android. Możesz spróbować tego. Usuń spacje z tekstu, a następnie wyświetl je poprawnie. Jeśli długość widoku tekstowego wynosi < tego ciągu, ignoruje wszystkie znaki po spacji. Dla obejścia można spróbować to:

dodać plik do folderu res/layout nazwie multiline_spinner_dropdown_item.xml z przykładowy kod:

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@android:id/sample_text" 
style="?android:attr/spinnerDropDownItemStyle" 
android:singleLine="false" 
android:layout_width="match_parent" 
android:layout_height="?android:attr/listPreferredItemHeight" 
android:ellipsize="marquee" /> 

i podczas tworzenia tarczy go utworzyć z tego układu .

Coś jak:

ArrayAdapter.createFromResource(this, items, R.layout.multiline_spinner_dropdown_item); 

Zasadniczo skopiować układ android.R.layout.simple_spinner_dropdown_item do projektu i zmodyfikować układ ustawiając SingleLine atrybut na false w CheckedTextView.

Powiązane problemy