Jetpack Compose ermöglicht detaillierte Interaktivität in Text
. Textauswahl ist
jetzt flexibler und kann für zusammensetzbare Layouts verwendet werden. Nutzerinteraktionen
sich von anderen zusammensetzbaren Layouts unterscheiden, da Sie keinen Modifizierer
Teil einer zusammensetzbaren Text
-Funktion. Auf dieser Seite werden die APIs vorgestellt.
die Interaktionen der Nutzer ermöglichen.
Text auswählen
Standardmäßig sind zusammensetzbare Funktionen nicht auswählbar, d. h. Nutzer können
Text aus Ihrer App auswählen und kopieren. Um die Textauswahl zu aktivieren, fügen Sie den Zeilenumbruch ein
mit einer zusammensetzbaren Funktion SelectionContainer
auf:
@Composable fun SelectableText() { SelectionContainer { Text("This text is selectable") } }
Sie können die Auswahl für bestimmte Bereiche eines auswählbaren Bereichs deaktivieren. Dazu müssen Sie den nicht auswählbaren Teil in einen DisableSelection
-Komposit einschließen:
@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") } } }
Mit LinkAnnotation
anklickbare Textabschnitte erstellen
Wenn Sie auf Klicks auf Text
reagieren möchten, können Sie den Modifikator clickable
hinzufügen. Es kann jedoch sinnvoll sein, einem bestimmten Teil des
den Wert Text
, z. B. eine URL, die an ein bestimmtes Wort angehängt ist und in einem
Browser. In solchen Fällen müssen Sie ein LinkAnnotation
verwenden.
Eine Anmerkung, die einen anklickbaren Teil des Textes darstellt.
Mit LinkAnnotation
können Sie einem Teil eines Text
-Elements eine URL zuweisen, die automatisch geöffnet wird, wenn darauf geklickt wird, wie im folgenden Snippet gezeigt:
@Composable fun AnnotatedStringWithLinkSample() { // Display a link in the text Text( buildAnnotatedString { append("Build better apps faster with ") withLink( LinkAnnotation.Url( "https://developer.android.com/jetpack/compose", TextLinkStyles(style = SpanStyle(color = Color.Blue)) ) ) { append("Jetpack Compose") } } ) }
Sie können auch eine benutzerdefinierte Aktion konfigurieren, die als Reaktion auf den Klick eines Nutzers auf einen Teil der
die zusammensetzbare Funktion Text
. Wenn der Nutzer im folgenden Snippet auf
„Jetpack Compose“. Ein Link wird angezeigt und die Messwerte werden protokolliert, wenn der Nutzer
klickt auf den Link:
@Composable fun AnnotatedStringWithListenerSample() { // Display a link in the text and log metrics whenever user clicks on it. In that case we handle // the link using openUri method of the LocalUriHandler val uriHandler = LocalUriHandler.current Text( buildAnnotatedString { append("Build better apps faster with ") val link = LinkAnnotation.Url( "https://developer.android.com/jetpack/compose", TextLinkStyles(SpanStyle(color = Color.Blue)) ) { val url = (it as LinkAnnotation.Url).url // log some metrics uriHandler.openUri(url) } withLink(link) { append("Jetpack Compose") } } ) }
Empfehlungen für dich
- Hinweis: Der Linktext wird angezeigt, wenn JavaScript deaktiviert ist.
- Semantik in Compose
- Bedienungshilfen in „Compose“
- Material Design 2 in Compose