Włącz interakcje użytkowników

Jetpack Compose umożliwia precyzyjną interaktywność w przypadku elementu Text. Wybieranie tekstu jest teraz bardziej elastyczne i można je wykonywać w układach z możliwością komponowania. Interakcje użytkownika z tekstem różnią się od interakcji z innymi układami z możliwością komponowania, ponieważ nie można dodać modyfikatora do części elementu Text. Na tej stronie znajdziesz informacje o interfejsach API, które umożliwiają interakcje użytkownika.

Zaznacz tekst

Domyślnie elementy z możliwością komponowania nie są wybieralne, co oznacza, że użytkownicy nie mogą zaznaczać i kopiować tekstu z Twojej aplikacji. Aby włączyć wybieranie tekstu, otocz elementy tekstowe elementem z możliwością komponowania SelectionContainer:

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

Krótki fragment tekstu wybrany przez użytkownika.

Możesz wyłączyć wybieranie w określonych częściach obszaru wybieralnego. Aby to zrobić, musisz otoczyć niewybieralną część elementem z możliwością komponowania DisableSelectioncomposable:

@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ż w przypadku 2 wierszy zastosowano ustawienie DisableSelection, nie zostały one zaznaczone.

Tworzenie klikalnych sekcji tekstu za pomocą LinkAnnotation

Aby nasłuchiwać kliknięć w element Text, możesz dodać modyfikator clickable. Możesz jednak chcieć dołączyć dodatkowe informacje do określonej części wartości Text, np. adres URL dołączony do określonego słowa, które ma zostać otwarte w przeglądarce. W takich przypadkach musisz użyć elementu LinkAnnotation, który jest adnotacją reprezentującą klikalną część tekstu.

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

Możesz też skonfigurować niestandardowe działanie w odpowiedzi na kliknięcie przez użytkownika części elementu z możliwością komponowania Text. W tym fragmencie kodu, gdy użytkownik kliknie „Jetpack Compose”, wyświetli się link, a jeśli użytkownik kliknie ten link, zostaną zarejestrowane dane.