Jetpack Compose, Text
ürününde ayrıntılı etkileşim sağlar. Metin seçimi artık daha esnek ve derlenebilir düzenlerde yapılabilir. Text
bileşeninin bir bölümüne değiştirici ekleyemezsiniz. Bu nedenle, metindeki kullanıcı etkileşimleri diğer bileşen düzenlerinden farklıdır. Bu sayfada, kullanıcı etkileşimlerini sağlayan API'ler vurgulanmaktadır.
Metin seçin
Varsayılan olarak, composable'lar seçilemez. Bu, kullanıcıların
uygulamanızdan metin seçip kopyalayın. Metin seçimini etkinleştirmek için kaydır
SelectionContainer
composable ile metin öğelerinize ekleyin:
@Composable fun SelectableText() { SelectionContainer { Text("This text is selectable") } }
Seçilebilir bir alanın belirli bölümlerinde seçimi devre dışı bırakmak isteyebilirsiniz. Bunun için, seçilemeyen kısmı bir DisableSelection
bileşeni ile sarmanız gerekir:
@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") } } }
LinkAnnotation
ile tıklanabilir metin bölümleri oluşturma
Text
üzerindeki tıklamaları dinlemek için clickable
özelliğini ekleyebilirsiniz
kullanabilirsiniz. Ancak, projenizin belirli bir bölümüne fazladan bilgi eklemek isteyebilirsiniz.
Text
değerine (örneğin, belirli bir kelimeye ekli bir URL'nin
emin olun. Bu gibi durumlarda, metnin tıklanabilir bir bölümünü temsil eden bir ek açıklama olan LinkAnnotation
kullanmanız gerekir.
LinkAnnotation
ile, aşağıdaki snippet'te gösterildiği gibi, Text
bileşeninin bir bölümüne tıklandığında otomatik olarak açılan bir URL ekleyebilirsiniz:
@Composable fun AnnotatedStringWithLinkSample() { // Display multiple links in the text Text( buildAnnotatedString { append("Go to the ") withLink( LinkAnnotation.Url( "https://developer.android.com/", TextLinkStyles(style = SpanStyle(color = Color.Blue)) ) ) { append("Android Developers ") } append("website, and check out the") withLink( LinkAnnotation.Url( "https://developer.android.com/jetpack/compose", TextLinkStyles(style = SpanStyle(color = Color.Green)) ) ) { append("Compose guidance") } append(".") } ) }
Ayrıca, kullanıcının Text
bileşeninin bir bölümünü tıklamasına yanıt olarak özel bir işlem de yapılandırabilirsiniz. Aşağıdaki snippet'te, kullanıcı
"Jetpack Compose" (Jetpack Oluştur), bir bağlantı gösterilir ve kullanıcı
bağlantıyı tıkladığında:
@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") } } ) }
Sizin için önerilenler
- Not: JavaScript kapalıyken bağlantı metni gösterilir
- Yazma sırasında anlamlar
- Compose'da erişilebilirlik
- E-posta Yazma'da Materyal Tasarım 2