Włącz interakcje użytkowników

Jetpack Compose umożliwia szczegółową interaktywność w Text. Zaznaczanie tekstu jest teraz bardziej elastyczne i można je wykonywać w ramach układów kompozytowych. Interakcje użytkownika z tekstem różnią się od innych kompozybilnych układów, ponieważ nie można dodać modyfikatora do części kompozybilnego komponentu Text. Ta strona zawiera informacje o interfejsach API, które umożliwiają interakcje z użytkownikiem.

Zaznacz tekst

Domyślnie komponenty nie są wybieralne, co oznacza, że użytkownicy nie mogą zaznaczać ani kopiować tekstu w aplikacji. Aby umożliwić wybór tekstu, owiń elementy tekstowe komponentem SelectionContainer:

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

Krótki fragment tekstu wybrany przez użytkownika.

Możesz wyłączyć zaznaczenie w konkretnych częściach obszaru, który można zaznaczyć. Aby to zrobić, musisz opakować niemożliwą do wyboru część funkcją kompozycyjną 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")
        }
    }
}

Dłuższy fragment tekstu. Użytkownik próbował zaznaczyć cały fragment, ale 2 wiersze miały zastosowany DisableSelection, więc nie zostały zaznaczone.

Tworzenie klikalnych sekcji tekstu w usłudze LinkAnnotation

Aby rejestrować kliknięcia na elemencie Text, możesz dodać modyfikator clickable. Możesz jednak dołączyć dodatkowe informacje do określonej części wartości Text, np. adres URL dołączony do określonego słowa, aby otworzyć go w przeglądarce. W takich przypadkach musisz użyć adnotacji LinkAnnotation, która reprezentuje część tekstu, którą można kliknąć.

Za pomocą LinkAnnotation możesz dołączyć adres URL do części komponentu Text, który otwiera się automatycznie po kliknięciu, jak pokazano w tym fragmencie kodu:

Możesz też skonfigurować działanie niestandardowe w odpowiedzi na kliknięcie przez użytkownika części funkcji kompozycyjnej Text. W poniższym fragmencie po kliknięciu przez użytkownika opcji „Jetpack Compose” wyświetla się link, a po kliknięciu linku zostają zarejestrowane dane: