2015-03-12 10 views
21

Mam prosty Button:Przycisk setText z Spannable nie działa na Androidzie 5.0 Lollipop

<Button 
    android:id="@+id/test" 
    android:textColor="@color/white" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 

i próbować zmienić właściwości tekstu przez:

SpannableString span = new SpannableString(text); 
span.setSpan(new AbsoluteSizeSpan(8, true), 5, 10, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
testButton.setText(span); 

To działa na Androidzie 4.3, ale nie robi "t na 5.0.

Ciekawostką jest to, że kiedy zmieniam implementację z Button na TextView, działa poprawnie w wersji 5.0. Wydaje się być czymś z Button w Lollipop.

+0

"Działa z systemem Android 4.3, ale nie z wersją 5.0." - proszę określić, co oznacza "nie". Jeśli masz na myśli, że twoja "AbsoluteSizeSpan" jest stracona, to mnie nie szokuje, ponieważ Android 5.0 wydaje się chcieć kontrolować napisy bardziej, na przykład zmuszając je do wszystkich ograniczeń. – CommonsWare

+0

@CommonsWare tak, zakres jest ignorowany. – mklimek

+0

Spodziewam się, że jest wielu programistów, którzy są zirytowani domyślnymi ustawieniami maksymalnego poziomu napisów w Androidzie 5.0. Jeśli istnieje obejście blokujące to zachowanie, może również zezwolić na kontynuowanie działania 'AbsoluteSizeSpan'. – CommonsWare

Odpowiedz

73

Domyślnie przyciski Materiał są stylizowane tak, aby wyświetlały tekst w całości. Istnieje jednak błąd w kodzie AllCapsTransformationMethod używany do kapitalizacji, który powoduje, że odrzuca dane Spannable.

Można zastąpić domyślny styl stylizacji i wyłączyć wszystkie znaki główki, określając android:textAllCaps="false" na swoim Button.

<Button 
    ... 
    android:textAllCaps="false" /> 
+15

Kolejny wtf Android moment ... kiedy masz TextView z setAllCaps ustawione na true, Spannables przestaje działać. W moim przypadku była ForegroundColorSpannable. Dziękuję za odpowiedź. – Michal

+0

Aby uzyskać więcej informacji, zobacz: http://stackoverflow.com/questions/32257606/imagespan-not-working-on-android-5/32867216?noredirect=1#comment53573775_32867216 –

Powiązane problemy