يعمل مكون snackbar كإشعار موجز يظهر في أسفل الشاشة. تقدّم الملاحظات والآراء حول عملية أو إجراء بدون مقاطعة تجربة المستخدم. تختفي أشرطة التطبيقات المصغّرة بعد بضع ثوانٍ. ويمكنه أيضًا إغلاقها من خلال إجراء، مثل النقر على زر.
إليك حالات الاستخدام الثلاث التي قد تستخدم فيها شريط التطبيقات المصغّرة:
- تأكيد الإجراء: بعد أن يحذف المستخدم رسالة إلكترونية أو رسالة، يظهر شريط إعلام سريع لتأكيد الإجراء وتقديم خيار "التراجع".
- حالة الشبكة: عندما ينقطع اتصال التطبيق بالإنترنت، ينبثق شريط للوجبات الخفيفة ليلاحظ أنّه غير متصل بالإنترنت الآن.
- إرسال البيانات: عند إرسال نموذج أو تعديل الإعدادات بنجاح، يشير شريط الإعلام المنبثق إلى أنّ التغيير قد تم حفظه بنجاح.
مثال أساسي
لتنفيذ شريط معلومات سريع، عليك أولاً إنشاء SnackbarHost
، الذي يتضمّن سمة
SnackbarHostState
. توفّر SnackbarHostState
إمكانية الوصول إلى الدالة
showSnackbar()
التي يمكنك استخدامها لعرض شريط التطبيقات المصغّرة.
تتطلّب دالة التعليق هذه السمة CoroutineScope
كما هو الحال مع استخدام rememberCoroutineScope
، ويمكن استدعاؤها استجابةً لأحداث واجهة المستخدم لعرض Snackbar
ضمن Scaffold
.
val scope = rememberCoroutineScope() val snackbarHostState = remember { SnackbarHostState() } Scaffold( snackbarHost = { SnackbarHost(hostState = snackbarHostState) }, floatingActionButton = { ExtendedFloatingActionButton( text = { Text("Show snackbar") }, icon = { Icon(Icons.Filled.Image, contentDescription = "") }, onClick = { scope.launch { snackbarHostState.showSnackbar("Snackbar") } } ) } ) { contentPadding -> // Screen content }
شريط التطبيقات المصغّرة الذي يتضمّن إجراءً
يمكنك تقديم إجراء اختياري وتعديل مدة Snackbar
.
تقبل الدالة snackbarHostState.showSnackbar()
مَعلمتَي actionLabel
وduration
إضافيتين، وتُرجع SnackbarResult
.
val scope = rememberCoroutineScope() val snackbarHostState = remember { SnackbarHostState() } Scaffold( snackbarHost = { SnackbarHost(hostState = snackbarHostState) }, floatingActionButton = { ExtendedFloatingActionButton( text = { Text("Show snackbar") }, icon = { Icon(Icons.Filled.Image, contentDescription = "") }, onClick = { scope.launch { val result = snackbarHostState .showSnackbar( message = "Snackbar", actionLabel = "Action", // Defaults to SnackbarDuration.Short duration = SnackbarDuration.Indefinite ) when (result) { SnackbarResult.ActionPerformed -> { /* Handle snackbar action performed */ } SnackbarResult.Dismissed -> { /* Handle snackbar dismissed */ } } } } ) } ) { contentPadding -> // Screen content }
يمكنك توفير Snackbar
مخصّصة باستخدام المَعلمة snackbarHost
. اطّلِع على مستندات مرجعية لواجهة برمجة التطبيقات SnackbarHost
للحصول على مزيد من المعلومات.