Как включить взаимодействие с пользователем

Jetpack Compose обеспечивает точную интерактивность в Text. Выделение текста стало более гибким и теперь может выполняться в макетах Composable. Взаимодействие пользователя с текстом отличается от других компонуемых макетов, поскольку вы не можете добавить модификатор к части компонуемого объекта Text. На этой странице описаны API, которые позволяют пользователям взаимодействовать с картой.

Выбрать текст

По умолчанию composable-функции не поддерживают выделение, то есть пользователи не могут выделять и копировать текст из приложения. Чтобы включить выделение текста, оберните текстовые элементы в composable-функцию SelectionContainer:

@Composable
fun SelectableText() {
    SelectionContainer {
        Text("This text is selectable")
    }
}

Короткий фрагмент текста, выбранный пользователем.

Вы можете отключить выделение для определенных частей области, которую можно выделить. Для этого нужно обернуть невыделяемую часть в composable-функцию DisableSelection:

@Composable
fun PartiallySelectableText() {
    SelectionContainer {
        Column {
            Text("This text is selectable")
            Text("This one too")
            Text("This one as well")
            DisableSelection {
                Text("But not this one")
                Text("Neither this one")
            }
            Text("But again, you can select this one")
            Text("And this one too")
        }
    }
}

Более длинный фрагмент текста. Пользователь попытался выделить весь отрывок, но две строки, для которых было применено свойство DisableSelection, не были выделены.

Создавайте кликабельные разделы текста с помощью LinkAnnotation

Чтобы отслеживать клики по Text, можно добавить модификатор clickable. Однако вы можете прикрепить дополнительную информацию к определенной части значения Text, например URL к определенному слову, которое будет открываться в браузере. В таких случаях нужно использовать LinkAnnotation – аннотацию, которая представляет собой кликабельную часть текста.

С помощью LinkAnnotation вы можете прикрепить URL к части composable-функции Text, которая автоматически открывается при нажатии, как показано в следующем фрагменте:

Вы также можете настроить настраиваемое действие в ответ на нажатие пользователем на часть composable-функции Text. В следующем фрагменте кода, когда пользователь нажимает на Jetpack Compose, показывается ссылка. Если пользователь нажимает на нее, регистрируются показатели.