Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
66 of 502 menu
◀ ▶

Класс LinkAnnotation

Класс LinkAnnotation хранит описание ссылки на диапазон текста. Для перехода по адресу создают LinkAnnotation.Url с параметром URL. Для своего обработчика нажатия создают LinkAnnotation.Clickable с тегом и слушателем. На строку ссылку вешают методом addLink у AnnotatedString.Builder.

Синтаксис

LinkAnnotation.Url("https://example.com")

Пример

Давайте сделаем кликабельный URL на экране:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material3.Text import androidx.compose.ui.text.LinkAnnotation import androidx.compose.ui.text.buildAnnotatedString class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { val annotated = buildAnnotatedString { append("abcde") addLink( LinkAnnotation.Url("https://example.com"), start = 0, end = 5, ) } Text(text = annotated) } } }

На экране вся строка "abcde" будет выглядеть как ссылка.

Пример

Давайте повесим Clickable только на хвост строки:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material3.Text import androidx.compose.ui.text.LinkAnnotation import androidx.compose.ui.text.buildAnnotatedString class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { val annotated = buildAnnotatedString { append("12345") addLink( LinkAnnotation.Clickable(tag = "tail"), start = 3, end = 5, ) } Text(text = annotated) } } }

На экране кликабельным будет фрагмент "45", а "123" останется обычным текстом.

Смотрите также

  • метод addLink,
    который ставит LinkAnnotation на диапазон
  • класс AnnotatedString,
    который хранит текст вместе со ссылками
  • класс AnnotatedString.Builder,
    который собирает размеченную строку
  • функция Text,
    которая рисует текст со ссылками
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить