A seguir, é o que aprendi brincando com várias opções para forçar TextView
a uma linha única (com e sem os três pontos).
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" />
Isso apenas força o texto a uma linha. Qualquer texto extra está oculto.
Palavras-chave:
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" />
Isso corta o texto que não se encaixa, mas permite que os usuários saibam que o texto foi truncado adicionando reticências (os três pontos).
Palavras-chave:
ellipsize = "letreiro"
<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" />
Isso faz o texto rolar automaticamente pelo TextView. Observe que às vezes precisa ser definido no código:
textView.setSelected(true);
Supostamente android:maxLines="1"
e android:singleLine="true"
deve fazer basicamente a mesma coisa e, como o singleLine está aparentemente obsoleto, eu preferiria não usá-lo, mas quando o tiro, a marca de seleção não rola mais. LevandomaxLines
não afeta, no entanto.
Palavras-chave:
HorizontalScrollView with scrollHorizontally
<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>
Isso permite que o usuário role manualmente para ver toda a linha de texto.