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

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», отображается ссылка, и метрики регистрируются, если пользователь нажимает на ссылку:

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