Jetpack Compose تعامل دقیق در Text را فعال می کند. انتخاب متن اکنون انعطافپذیرتر است و میتوان آن را در طرحبندیهای قابل ترکیب انجام داد. تعاملات کاربر در متن با دیگر طرحبندیهای قابل ترکیب متفاوت است، زیرا نمیتوانید یک اصلاحکننده به بخشی از Text قابل نوشتن اضافه کنید. این صفحه API هایی را که تعاملات کاربر را فعال می کنند برجسته می کند.
متن را انتخاب کنید
به طور پیش فرض، composable ها قابل انتخاب نیستند، به این معنی که کاربران نمی توانند متنی را از برنامه شما انتخاب و کپی کنند. برای فعال کردن انتخاب متن، عناصر متن خود را با یک SelectionContainer قابل ترکیب بپیچید:
@Composable fun SelectableText() { SelectionContainer { Text("This text is selectable") } }

ممکن است بخواهید انتخاب را در قسمت های خاصی از یک منطقه قابل انتخاب غیرفعال کنید. برای انجام این کار، باید قسمت غیر قابل انتخاب را با یک DisableSelection composable بپیچید:
@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 ایجاد کنید
برای گوش دادن به کلیک روی Text ، می توانید اصلاح کننده clickable را اضافه کنید. با این حال، ممکن است بخواهید اطلاعات اضافی را به قسمت خاصی از مقدار Text پیوست کنید، مانند URL متصل به یک کلمه خاص که در مرورگر باز می شود. در مواردی مانند این، باید از LinkAnnotation استفاده کنید، که حاشیهنویسی است که بخشی از متن قابل کلیک را نشان میدهد.
با LinkAnnotation ، میتوانید یک URL را به بخشی از Text قابل نوشتن پیوست کنید که پس از کلیک کردن، بهطور خودکار باز میشود، همانطور که در قطعه زیر نشان داده شده است:
@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(".") } ) }
همچنین میتوانید یک اقدام سفارشی را در پاسخ به کلیک کاربر روی بخشی از Text قابل تنظیم پیکربندی کنید. در قطعه زیر، وقتی کاربر روی «Jetpack Compose» کلیک میکند، یک پیوند نمایش داده میشود و اگر کاربر روی پیوند کلیک کند، معیارها ثبت میشوند:
@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") } } ) }
برای شما توصیه می شود
- توجه: وقتی جاوا اسکریپت خاموش است، متن پیوند نمایش داده می شود
- معناشناسی در نوشتن
- قابلیت دسترسی در نوشتن
- Material Design 2 در Compose