يمكنك إضافة إجراء إلى
Snackbar
للسماح للمستخدم بالردّ على رسالتك. عند إجراء ذلك، يضع الإجراء
Snackbar
زرًا بجانب نص الرسالة، ويمكن للمستخدم
تنفيذ الإجراء من خلال النقر على الزر. على سبيل المثال، قد يضع تطبيق البريد الإلكتروني زر تراجع في رسالة "البريد الإلكتروني مؤرشف". إذا نقر المستخدم على الزر
تراجع، يُخرج التطبيق الرسالة الإلكترونية من الأرشيف.

Snackbar
مع زر إجراء التراجع الذي
يستعيد عنصرًا تمت إزالته
لإضافة إجراء إلى رسالة Snackbar
، حدِّد عنصر مستمع
يطبِّق واجهة
View.OnClickListener
. يستدعي النظام onClick()
طريقة المستمع إذا نقر المستخدم على إجراء الرسالة. على سبيل المثال، يعرض هذا المقتطف مراقبًا
لإجراء التراجع:
Kotlin
class MyUndoListener : View.OnClickListener { fun onClick(v: View) { // Code to undo the user's last action. } }
Java
public class MyUndoListener implements View.OnClickListener { @Override public void onClick(View v) { // Code to undo the user's last action. } }
استخدِم إحدى setAction()
methods
لإرفاق المستمع بـ Snackbar
. اربط المُستمع قبل استدعاء show()
، كما هو موضّح في نموذج الرمز البرمجي التالي:
Kotlin
val mySnackbar = Snackbar.make(findViewById(R.id.myCoordinatorLayout), R.string.email_archived, Snackbar.LENGTH_SHORT) mySnackbar.setAction(R.string.undo_string, MyUndoListener()) mySnackbar.show()
Java
Snackbar mySnackbar = Snackbar.make(findViewById(R.id.myCoordinatorLayout), R.string.email_archived, Snackbar.LENGTH_SHORT); mySnackbar.setAction(R.string.undo_string, new MyUndoListener()); mySnackbar.show();
SnackbarHost
، كما هو موضّح في المثال التالي:
Kotlin
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { DACPlaygroundTheme { val snackbarHostState = remember { SnackbarHostState() } val scope = rememberCoroutineScope() Scaffold( snackbarHost = { SnackbarHost(snackbarHostState) }, content = { padding -> Button( modifier = Modifier.padding(padding), onClick = { scope.launch { snackbarHostState.showSnackbar( message = "1 item removed", actionLabel = "UNDO", duration = SnackbarDuration.Short ).run { when (this) { Dismissed -> Log.d("SNACKBAR", "Dismissed") ActionPerformed -> Log.d("SNACKBAR", "UNDO CLICKED") } } } } ) { Text("Show snackbar") } } ) } } }