Mam coś TextView
, co chcę ograniczyć jego postacie. Właściwie mogę to zrobić, ale szukam tego, jak dodać trzy kropki (...) na końcu łańcucha. Ten pokazuje, że tekst jest kontynuowany. To jest mój XML, ale nie ma kropek, chociaż ogranicza mój tekst.
<TextView
android:id = "@+id/tvFixture"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_toLeftOf = "@id/ivFixture_Guest"
android:text = "@string/test_06"
android:lines = "1"
android:ems = "3"
android:gravity = "right"
style = "@style/simpletopic.black"
android:ellipsize="end"/>
singleLine
? Zobacz także: Czy atrybut xml singleLine jest przestarzały, czy nie w systemie Android?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”
To tylko zmusza tekst do jednej linii. Każdy dodatkowy tekst jest ukryty.
Związane z:
ellipsize = "end"
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"
To powoduje, że tekst przewija się automatycznie po TextView. Zauważ, że czasami trzeba to ustawić w kodzie:
Podobno
android:maxLines="1"
iandroid: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ącmaxLines
się nie ma wpływu to, choć.Związane z:
HorizontalScrollView z przewijaniem Poziomo
Umożliwia to użytkownikowi ręczne przewijanie w celu wyświetlenia całej linii tekstu.
źródło
Wypróbuj tę właściwość TextView w pliku układu.
źródło
Rozumiem, że chcesz ograniczyć szerokość do jednej linii, a nie ograniczać ją przez znak? Ponieważ
singleLine
jest przestarzałe, możesz spróbować użyć następujących czynności razem:źródło
na przykład. możesz użyć
ograniczy to długość tekstu do 13, ale problem polega na tym, że jeśli spróbujesz dodać 3 kropki (...), nie wyświetli się, ponieważ będzie to część długości widoku tekstu.
oprócz tego musisz użyć
źródło
Posługiwać się
android:singleLine="true"
android:maxLines="1"
app:layout_constrainedWidth="true"
Tak wygląda mój pełny
TextView
wygląd:źródło
Korzystam z Horizonal Recyclerview.
1) W CardView TextView ulega zniekształceniu w pionie podczas używania
Sprawdź pogrubioną czcionkę TextViews Wyman Group, Jaskolski ...
2) Ale kiedy użyłem singleLine wraz z elipssize -
Sprawdź pogrubioną czcionkę TextViews Wyman Group, Jaskolski ...
Drugie rozwiązanie działało dla mnie poprawnie (przy użyciu singleLine). Testowałem również w wersji OS: 4.1 i nowszych (do 8.0), działa dobrze bez żadnych awarii.
źródło
kod:
xml:
na przykład
W Ewangelii Mateusza 13 uczniowie zapytali Jezusa, dlaczego przemawiał do tłumów w przypowieściach. Odpowiedział: „Dano wam poznać tajemnice królestwa niebieskiego, ale im nie zostało dane.
Wyjście: w Ewangelii Mateusza 13 uczniowie zapytali Jezusa, dlaczego rozmawiał z tłumem w przypowieściach. Odpowiedział: „Dano wam znać ...
źródło
Uzyskałem pożądany efekt za pomocą
Trik jest ustawiony na maxLines i minLines na tę samą wartość ... i nie tylko Android: linie = „2”, nie dawaj sztuczki. Również unikasz przestarzałych atrybutów.
źródło
Musisz dodać następujące wiersze do swojego układu dla widoku tekstu
Mam nadzieję, że to Ci odpowiada.
źródło
Możesz ograniczyć liczbę znaków widoku tekstu i dodać (...) po tekście. Załóżmy, że musisz pokazać tylko 5 liter, a następnie musisz pokazać (...), po prostu wykonaj następujące czynności:
mały hack ^ _ ^. Chociaż nie jest to dobre rozwiązanie. Ale praca wokół, która działała dla mnie: D
EDYCJA: Dodałem czek na mniej znaków zgodnie z twoim ograniczonym numerem. postaci.
źródło
Aby pracować z android: ellipsize atrybutu, trzeba ograniczyć szerokość układu w TextView tak, że tekst jest poza zakresem z widokiem TextView.
Tak więc android: layout_width atrybut odgrywa tutaj kluczową rolę, ustaw go odpowiednio.
Jednym z przykładów może być:
Teraz, jeśli tekst w Androidzie: tekst = "To jest bardzo długi tekst do wyświetlenia" zniknie z TextView w Androidzie: layout_width = "120dp" , android: ellipsize = "end" obetnie tekst i umieść za nim ... (3 kropki) . tj. To jest bardzo długie ... zostanie wyświetlone w TextView.
źródło
Myślę, że podajesz stałą wysokość i szerokość widoku tekstu. Twoje rozwiązanie zadziała.
źródło
możesz napisać ten wiersz w XML, w którym weźmiesz
textview
:źródło
Podejście @AzharShaikh działa dobrze.
Ale zdaję sobie sprawę, że TextView zostanie obcięty przez słowo (domyślnie). Pokaż, jeśli mamy tekst taki jak:
test long_line_without_any_space_abcdefgh
TextView wyświetli:
test...
Znalazłem rozwiązanie, aby poradzić sobie z tym problemem, zastąpić spacje unikatowym znakiem spacji unicode, dzięki czemu TextView zawija się w znaki zamiast słów:
Wynik:
test long_line_without_any_space_abc ...
źródło
źródło
Dodaj te dwa wiersze w tekście
źródło
możesz to zrobić przez
xml
:źródło
Dots
@ end zmaxLength="35"
właściwością jakieś rozwiązanie?Zmieniasz tylko ...
Użyj tego poniżej wiersza
.......
źródło