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. } }
अपने Snackbar में लिसनर अटैच करने के लिए, इनमें से किसी एक setAction() तरीके का इस्तेमाल करें. 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") } } ) } } }