Jeśli a String
jest dłuższe niż TextView
szerokość, automatycznie zawija się do następnej linii. Mogę tego uniknąć, używając android:singleLine
(przestarzałe) lub ustawiając android:inputType="text"
. Teraz potrzebuję czegoś, co zastąpi ostatnie 3 moje znaki znakiem String
„ … ”. Ponieważ nie używam czcionki o stałej szerokości, zawsze będzie się to różnić w zależności od liter użytych w my String
. Zastanawiam się więc, jaki jest najlepszy sposób, aby uzyskać ostatnie 3 znaki ciągu w a TextView
i je zastąpić. Może jest już coś zaimplementowanego we frameworku Androida, ponieważ to musi być powszechny problem.
136
Znalazłem interesujące rozwiązanie tego problemu.
maxLines=1 ellipsize=end scrollHorizontally=true
Rzecz w tym, że ostatnie stwierdzenie dotyczące przewijania w poziomie… sprawdź to. Działa przynajmniej w wersji 2.2.
źródło
Programowo możesz użyć:
TextView tx = new TextView(this); tx.setTextSize(13); tx.setGravity(Gravity.CENTER); tx.setTop(90); tx.setText("Long text here"); tx.setTextColor(Color.BLACK); tx.setSingleLine(true); tx.setEllipsize(TruncateAt.END);
źródło