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

Jetpack Compose מאפשר אינטראקטיביות ברמה גבוהה ב-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")
        }
    }
}

קטע טקסט ארוך יותר. המשתמש ניסה לבחור את כל הקטע, אבל מכיוון שהוחל על שתי שורות DisableSelection, הן לא נבחרו.

יצירת קטעי טקסט שאפשר ללחוץ עליהם בעזרת LinkAnnotation

כדי להאזין לקליקים על Text, אפשר להוסיף את המקש המשנה clickable. עם זאת, יכול להיות שתרצו לצרף מידע נוסף לחלק מסוים בערך של Text, כמו כתובת URL שמצורפת למילה מסוימת כדי לפתוח אותה בדפדפן. במקרים כאלה, צריך להשתמש בLinkAnnotation, שהיא הערה שמייצגת חלק בטקסט שאפשר ללחוץ עליו.

עם LinkAnnotation, אפשר לצרף כתובת URL לחלק מ-Text composable שנפתח אוטומטית כשלוחצים עליו, כמו בקטע הקוד הבא:

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