Oto, czego się nauczyłem, grając z różnymi opcjami wymuszania TextView
na jednej linii (z trzema kropkami i bez nich).
android: maxLines = „1”
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="1"
android:text="one two three four five six seven eight nine ten" />
To tylko zmusza tekst do jednej linii. Każdy dodatkowy tekst jest ukryty.
Związane z:
ellipsize = "end"
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="1"
android:ellipsize="end"
android:text="one two three four five six seven eight nine ten" />
To odcina tekst, który nie pasuje, ale informuje użytkowników, że tekst został obcięty przez dodanie wielokropka (trzy kropki).
Związane z:
ellipsize = "markiza"
<TextView
android:id="@+id/MarqueeText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="1"
android:singleLine="true"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:text="one two three four five six seven eight nine ten" />
To powoduje, że tekst przewija się automatycznie po TextView. Zauważ, że czasami trzeba to ustawić w kodzie:
textView.setSelected(true);
Podobno android:maxLines="1"
i android:singleLine="true"
powinien zrobić w zasadzie to samo, a ponieważ singleLine jest najwyraźniej przestarzałe , wolałbym go nie używać, ale kiedy go wyjmuję, markiza nie przewija się. Biorąc maxLines
się nie ma wpływu to, choć.
Związane z:
HorizontalScrollView z przewijaniem Poziomo
<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/horizontalScrollView">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="1"
android:scrollHorizontally="true"
android:text="one two three four five six seven eight nine ten" />
</HorizontalScrollView>
Umożliwia to użytkownikowi ręczne przewijanie w celu wyświetlenia całej linii tekstu.