إنشاء زر لتفعيل ميزة "الانتقال السريع للأعلى أو للأسفل"

يمكنك عرض زر للسماح للمستخدم بالتنقل بسرعة إلى نقطة معيّنة في قائمة، ما يوفر الوقت ويزيد من تفاعل المستخدم.

توافق الإصدار

يتطلّب هذا التنفيذ ضبط الحد الأدنى من إصدار حزمة SDK لمشروعك على المستوى 21 من واجهة برمجة التطبيقات أو إصدار أحدث.

التبعيات

إنشاء زر لتفعيل الانتقال السريع للأعلى أو للأسفل

استخدِم الرمز البرمجي التالي لإنشاء زرّ لميزة التمرير السريع السلس في قائمة عمودية بطيئة العرض تتضمّن 10 عناصر:

@Composable
fun MessageList(modifier: Modifier = Modifier) {
    val listState = rememberLazyListState()
    val coroutineScope = rememberCoroutineScope()

    LazyColumn(state = listState, modifier = Modifier.height(120.dp)) {
        items(10) { index ->
            Text(
                modifier = Modifier.height(40.dp),
                text = "Item $index"
            )
        }
    }

    Button(onClick = {
        coroutineScope.launch {
            listState.animateScrollToItem(index = 0)
        }
    }) {
        Text(text = "Go top")
    }
}

النقاط الرئيسية حول الرمز

  • يستخدم العنصر listState لتذكر حالة الانتقال إلى الأعلى أو الأسفل في LazyColumn إلى الموضع المحدّد.
  • يبدأ دالة معالجة متزامنة للاتصال بـ listState.animateScrollToItem، والتي تنتقل إلى العنصر المفهرَس أثناء إضافة تأثيرات متحركة إلى إجراء الانتقال.

النتائج

قائمة يتم التمرير فيها عموديًا مع زر نشط
الشكل 1. قائمة بميزة التمرير العمودي مع زر تمرير سريع

المجموعات التي تتضمّن هذا الدليل

هذا الدليل هو جزء من مجموعات الأدلة السريعة المنظَّمة التي تتناول أهداف تطوير Android الأوسع نطاقًا:

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

إذا كانت لديك أسئلة أو ملاحظات

يمكنك الانتقال إلى صفحة الأسئلة الشائعة والاطّلاع على الأدلة السريعة أو التواصل معنا وإعلامنا برأيك.