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

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

Выделить текст

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

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

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

Возможно, вам потребуется отключить выделение определённых частей выбираемой области. Для этого необходимо обернуть невыбираемую часть в компонуемый объект 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-адрес к части Text компоновщика, который автоматически откроется после щелчка, как показано в следующем фрагменте:

Вы также можете настроить пользовательское действие в ответ на нажатие пользователем части Text элемента. В следующем фрагменте кода, когда пользователь нажимает на кнопку «Jetpack Compose», отображается ссылка, и при нажатии на ссылку регистрируются метрики:

{% дословно %} {% endverbatim %} {% дословно %} {% endverbatim %}