يعمل مكوّن شريط الإشعارات كإشعار قصير يظهر في أسفل الشاشة. ويقدّم ملاحظات حول عملية أو إجراء بدون التأثير في تجربة المستخدم. تختفي أشرطة الإشعارات بعد بضع ثوانٍ. يمكن للمستخدم أيضًا إغلاقها من خلال إجراء، مثل النقر على زر.
إليك ثلاث حالات استخدام يمكنك فيها استخدام شريط إشعارات:
- تأكيد الإجراء: بعد أن يحذف المستخدم رسالة إلكترونية أو رسالة، يظهر شريط إعلام منبثق لتأكيد الإجراء وتقديم خيار التراجع.
- حالة الشبكة: عندما يفقد التطبيق اتصاله بالإنترنت، يظهر شريط إعلام منبثق للإشارة إلى أنّه غير متصل بالإنترنت الآن.
- إرسال البيانات: عند إرسال نموذج أو تعديل الإعدادات بنجاح، يشير شريط الإشعارات إلى أنّه تم حفظ التغيير بنجاح.
مثال أساسي
لتنفيذ شريط إعلام منبثق، عليك أولاً إنشاء 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.
النقاط الرئيسية
actionLabel = "Action": يضبط نص زر الإجراء.duration = SnackbarDuration.Indefinite: يبقي شريط الإشعارات معروضًا إلى أن يغلقه المستخدم أو البرنامج.SnackbarResult.ActionPerformed: يشير إلى أنّ المستخدم قد نقر على زر الإجراء في شريط الإشعارات.SnackbarResult.Dismissed: يشير إلى أنّ المستخدم قد أغلق شريط الإشعارات بدون النقر على زر الإجراء.