আপনার মেসেজের উত্তর দেওয়ার জন্য ব্যবহারকারীকে অনুমতি দিতে, আপনি
Snackbar
অ্যাকশন যোগ করতে পারবেন। আপনি এটি করলে,
Snackbar মেসেজ টেক্সটের পাশে একটি বোতাম রাখে এবং ব্যবহারকারী বোতামে ট্যাপ করে
আপনার অ্যাকশন ট্রিগার করতে পারেন। যেমন, কোনও ইমেল অ্যাপ তার "ইমেল আর্কাইভ করা হয়েছে" মেসেজে
আগের অবস্থায় ফিরিয়ে আনা বোতাম রাখতে পারে। ব্যবহারকারী
আগের অবস্থায় ফিরিয়ে আনুন বোতামে ট্যাপ করলে, অ্যাপটি আর্কাইভ থেকে ইমেলটি ফিরিয়ে আনে।
Snackbar যার মধ্যে একটি 'আগের অবস্থায় ফিরিয়ে আনুন' অ্যাকশন বোতাম আছে যা
সরানো আইটেম ফিরিয়ে আনে।
Snackbar মেসেজে অ্যাকশন যোগ করতে, একটি লিসনার অবজেক্ট
সংজ্ঞায়িত করুন
যা View.OnClickListener
ইন্টারফেস
ইমপ্লিমেন্ট করে। ব্যবহারকারী মেসেজ অ্যাকশনে ট্যাপ করলে, সিস্টেম আপনার শ্রোতার
onClick()
মেথড কল করে। যেমন, এই স্নিপেটটি একটি
পূর্বাবস্থায় ফেরানো অ্যাকশনের জন্য লিসনার দেখায়:
class MyUndoListener : View.OnClickListener { override fun onClick(v: View) { // Code to undo the user's last action. } }
আপনার Snackbar-এর সাথে লিসনার অ্যাটাচ করতে
setAction()
পদ্ধতিগুলির মধ্যে একটি ব্যবহার করুন। আপনি
show()-কে কল করার আগে
লিসনার অ্যাটাচ করুন,
যেমন এই কোড স্যাম্পেলে দেখানো হয়েছে:
val mySnackbar = Snackbar.make( findViewById(R.id.myCoordinatorLayout), R.string.email_archived, Snackbar.LENGTH_SHORT ) mySnackbar.setAction(R.string.undo_string, MyUndoListener()) mySnackbar.show()
SnackbarHost,
দেখাতে পারবেন, যেমনটি নিম্নলিখিত উদাহরণে দেখানো হয়েছে:
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") } } ) } } }