Перечисление TextOverflow
Перечисление TextOverflow выбирает,
как показать текст, который не влезает
в лимит строк.
Значение передают в параметр overflow
у Text
вместе с maxLines.
Синтаксис
TextOverflow.Ellipsis
Значения
| Значение | Описание |
|---|---|
Clip |
Лишний текст обрезается без знака. |
Ellipsis |
В конце видимой части ставится многоточие. |
Visible |
Текст рисуется дальше границы, может наезжать на соседей. |
StartEllipsis |
Многоточие в начале, если не хватает места слева. |
MiddleEllipsis |
Многоточие в середине строки. |
Если overflow не задан,
по умолчанию используется Clip.
Пример
Давайте обрежем длинную строку многоточием:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.width
import androidx.compose.material3.Text
import androidx.compose.ui.Modifier
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Text(
text = "12345",
modifier = Modifier.width(36.dp),
maxLines = 1,
overflow = TextOverflow.Ellipsis,
)
}
}
}
На экране строка займёт одну линию,
а хвост скроется за "…" в конце.
Пример
Давайте поставим многоточие в середине:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.width
import androidx.compose.material3.Text
import androidx.compose.ui.Modifier
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Text(
text = "abcde",
modifier = Modifier.width(40.dp),
maxLines = 1,
overflow = TextOverflow.MiddleEllipsis,
)
}
}
}
На экране середина длинной строки заменится многоточием.
Смотрите также
-
функция
Text,
где задают overflow и maxLines -
перечисление
TextAlign,
которое выравнивает строки -
класс
TextStyle,
общий стиль абзаца -
метод
fillMaxWidth,
который ограничивает ширину текста