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