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

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 %}