تفعيل تفاعلات المستخدم

تتيح Jetpack Compose تفاعلاً دقيقًا في Text. أصبح بإمكانك الآن تحديد النص بشكل أكثر مرونة وفي جميع التصاميم القابلة للإنشاء. تختلف تفاعلات المستخدمين في النص عن التصاميم الأخرى القابلة للإنشاء، إذ لا يمكنك إضافة معدِّل إلى جزء من عنصر Text قابل للإنشاء. توضّح هذه الصفحة واجهات برمجة التطبيقات التي تتيح تفاعلات المستخدمين.

تحديد نص

لا يمكن تحديد العناصر القابلة للإنشاء تلقائيًا، ما يعني أنّه لا يمكن للمستخدمين تحديد النص ونسخه من تطبيقك. لتفعيل إمكانية تحديد النص، عليك تضمين عناصر النص في عنصر 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 قابل للإنشاء يتم فتحه تلقائيًا عند النقر عليه، كما هو موضّح في المقتطف التالي:

يمكنك أيضًا ضبط إجراء مخصّص استجابةً لنقرة المستخدم على جزء من Text القابل للإنشاء. في المقتطف التالي، عندما ينقر المستخدم على Jetpack Compose، يظهر رابط، ويتم تسجيل المقاييس إذا نقر المستخدم على الرابط: