השימוש ב-Jetpack פיתוח נייטיב מאפשר אינטראקציה פרטנית ב-Text
. בחירת הטקסט היא עכשיו גמישה יותר וניתן לבצע אותה במגוון פריסות שאפשר לשלב. אינטראקציות של משתמשים
בטקסט יש הבדל בין פריסות קומפוזביליות אחרות, כי אי אפשר להוסיף מגביל
לחלק מתוכן קומפוזבילי של Text
. בדף הזה מודגשים ממשקי ה-API
שמאפשרות אינטראקציות של משתמשים.
בחירת טקסט
כברירת מחדל, אי אפשר לבחור תכנים קומפוזביליים, ולכן המשתמשים לא יכולים
לבחור טקסט מהאפליקציה ולהעתיק אותו. כדי להפעיל בחירת טקסט, צריך לגלול
רכיבי הטקסט באמצעות תוכן קומפוזבילי SelectionContainer
:
@Composable fun SelectableText() { SelectionContainer { Text("This text is selectable") } }
לא מומלץ לבחור פריטים ספציפיים באזור שניתן לבחור. לבצע
לכן, צריך ללפף את החלק שלא ניתן לבחור באמצעות DisableSelection
קומפוזבילי:
@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 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") } } ) }
אפשר גם להגדיר פעולה מותאמת אישית בתגובה ללחיצה של משתמש על חלק
התוכן הקומפוזבילי Text
. בקטע הקוד הבא, כשהמשתמש לוחץ על
מוצג קישור ל-Jetpack פיתוח נייטיב, והמדדים נרשמים ביומן אם המשתמשים
לוחץ על הקישור:
@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") } } ) }
מומלץ עבורך
- הערה: טקסט הקישור מוצג כאשר JavaScript מושבת
- סמנטיקה ב-Compose
- נגישות ב-Compose
- עיצוב Material 2 ב-Compose