Włącz interakcje użytkowników

Jetpack Compose umożliwia szczegółową interaktywność w aplikacji Text. Zaznaczanie tekstu jest teraz bardziej elastyczne i można je wykonywać w układach kompozycyjnych. Interakcje użytkownika z tekstem różnią się od innych układów funkcji kompozycyjnych, ponieważ nie można dodać modyfikatora do części funkcji kompozycyjnej Text. Na tej stronie znajdziesz interfejsy API, które umożliwiają interakcje z użytkownikami.

Zaznacz tekst

Domyślnie nie można zaznaczać elementów kompozycyjnych, co oznacza, że użytkownicy nie mogą zaznaczać i kopiować tekstu z aplikacji. Aby włączyć zaznaczanie tekstu, umieść elementy tekstowe w elemencie kompozycyjnym SelectionContainer:

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

Krótki fragment tekstu wybrany przez użytkownika.

Możesz wyłączyć możliwość zaznaczania określonych części obszaru, który można zaznaczyć. Aby to zrobić, musisz umieścić część, której nie można zaznaczyć, w funkcji kompozycyjnej 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 ponieważ do 2 wierszy zastosowano DisableSelection, nie zostały one zaznaczone.

Tworzenie klikalnych sekcji tekstu za pomocą LinkAnnotation

Aby monitorować kliknięcia elementu 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, który ma zostać otwarty w przeglądarce. W takich przypadkach musisz użyć LinkAnnotation, czyli adnotacji, która reprezentuje klikalną część tekstu.

Za pomocą LinkAnnotation możesz dołączyć adres URL do części funkcji kompozycyjnej Text, która automatycznie otwiera się 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 tym fragmencie kodu, gdy użytkownik kliknie „Jetpack Compose”, wyświetli się link, a jeśli użytkownik go kliknie, zostaną zarejestrowane dane: