Функция SelectionContainer
Функция SelectionContainer оборачивает
дочерние composable и включает для них
выделение текста жестами и клавиатурой.
Содержимое передают в лямбду content.
Чаще всего внутри ставят функцию
Text
или текст с разметкой.
Синтаксис
SelectionContainer {
Text(text = "abcde")
}
Параметры
| Параметр | Описание |
|---|---|
content |
Лямбда с текстовыми composable, для которых нужно выделение. |
Пример
Давайте разрешим выделять одну строку:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.text.selection.SelectionContainer
import androidx.compose.material3.Text
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
SelectionContainer {
Text(text = "abcde")
}
}
}
}
На экране текст "abcde" можно
выделить и скопировать, как в обычном поле.
Пример
Давайте обернём два текста в один контейнер:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.text.selection.SelectionContainer
import androidx.compose.material3.Text
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
SelectionContainer {
Column {
Text(text = "abcde")
Text(text = "12345")
}
}
}
}
}
На экране обе строки участвуют в одном блоке выделения внутри столбца.
Смотрите также
-
функция
Text,
которая рисует строку на экране -
класс
AnnotatedString,
который хранит текст с разной разметкой по частям -
класс
LinkAnnotation,
который помечает кликабельные фрагменты в тексте -
функция
Column,
которая ставит дочерние элементы в вертикальный столбец