הפעלת האינטראקציות של המשתמשים

השימוש ב-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 שנפתחת באופן אוטומטי אחרי שלוחצים עליה, כמו בקטע הקוד הבא:

אפשר גם להגדיר פעולה מותאמת אישית בתגובה ללחיצה של משתמש על חלק התוכן הקומפוזבילי Text. בקטע הקוד הבא, כשהמשתמש לוחץ על מוצג קישור ל-Jetpack פיתוח נייטיב, והמדדים נרשמים ביומן אם המשתמשים לוחץ על הקישור: