ব্যবহারকারীকে একটি সংক্ষিপ্ত মেসেজ দেখাতে, আপনি
Snackbar ব্যবহার করতে
পারেন। বিজ্ঞপ্তির মতো নয়, মেয়াদ শেষ হয়ে গেলে মেসেজটি অটোমেটিক মুছে যায়। Snackbar হল
সংক্ষিপ্ত মেসেজের জন্য আদর্শ, যেগুলির উপর ব্যবহারকারীকে কোনও অ্যাকশন নিতে হয় না। যেমন, কোনও
ইমেল অ্যাপ, ব্যবহারকারীকে জানাতে Snackbar ব্যবহার করতে পারে যে অ্যাপটি
সফলভাবে ইমেল পাঠিয়েছে।
CoordinatorLayout ব্যবহার করা
ভিউয়ের সাথে Snackbar অ্যাটাচ করা আছে। Snackbar
View ক্লাসের থেকে প্রাপ্ত কোনও অবজেক্টের সাথে এটি অ্যাটাচ করা থাকলে, এটি
প্রাথমিক কার্যকারিতা প্রদান করে, যেমন
সাধারণ লেআউট অবজেক্টের যেকোনও একটি। তবে, Snackbar যদি
CoordinatorLayout-এর সাথে
অ্যাটাচ করা থাকে,
তাহলে Snackbar অতিরিক্ত ফিচার পায়:
- ব্যবহারকারী
Snackbarসরিয়ে দিয়ে এটি বাতিল করতে পারবেন। Snackbarদেখা গেলে লেআউট অন্যান্য UI এলিমেন্ট সরিয়ে দেয়। যেমন, লেআউটে যদিFloatingActionButtonথাকে, তাহলে লেআউটSnackbarদেখানোর সময় বোতামের উপরেSnackbarড্র না করে, বোতামটিকে উপরে সরিয়ে দেয়। ১ নম্বর ছবিতে এটি কেমন দেখতে তা আপনি দেখতে পাবেন।
CoordinatorLayout ক্লাসটি
FrameLayout-এর
কার্যকারিতার একটি সুপারসেট প্রদান করে।
আপনার অ্যাপে আগে থেকেই FrameLayout ব্যবহার করা হলে, সম্পূর্ণ Snackbar
কার্যকারিতা চালু করতে, আপনি সেই লেআউটের পরিবর্তে
CoordinatorLayout ব্যবহার করতে পারেন। আপনার অ্যাপ অন্য লেআউট অবজেক্ট ব্যবহার করলে, আপনার বর্তমান লেআউট
এলিমেন্টকে CoordinatorLayout-এর মধ্যে র্যাপ করুন, যেমনটি নিম্নলিখিত
উদাহরণে দেখানো হয়েছে:
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/myCoordinatorLayout" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- Here are the existing layout elements, now wrapped in a CoordinatorLayout. --> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <!-- ...Toolbar, other layouts, other elements... --> </LinearLayout> </androidx.coordinatorlayout.widget.CoordinatorLayout>
আপনার CoordinatorLayout-এর জন্য android:id ট্যাগ সেট করুন।
মেসেজ দেখানোর সময় লেআউটের আইডি প্রয়োজন।
ছবি ১. Snackbar দেখা গেলে CoordinatorLayout FloatingActionButton-কে
উপরের দিকে সরায়।
মেসেজ দেখানো
মেসেজ দেখানোর দুটি ধাপ আছে। প্রথমে, আপনি মেসেজ টেক্সট সহ একটি
Snackbar অবজেক্ট তৈরি করেন। তারপর, ব্যবহারকারীকে মেসেজ দেখানোর জন্য আপনি সেই অবজেক্টের
show()
মেথড কল করেন।
Snackbar অবজেক্ট তৈরি করা
স্ট্যাটিক
Snackbar.make()
মেথড কল করে Snackbar অবজেক্ট তৈরি করুন। আপনি Snackbar তৈরি করার সময়, এটি
যে মেসেজ দেখায় এবং মেসেজটি কতক্ষণ ধরে দেখানো হবে তা নির্দিষ্ট করুন:
val mySnackbar = Snackbar.make(view, stringId, duration)
- ভিউ
-
Snackbarযে ভিউতে অ্যাটাচ করতে হবে। পাস করা ভিউ থেকে ভিউ হায়ারার্কি সার্চ করে এই পদ্ধতিটি যতক্ষণ না কোনওCoordinatorLayoutবা উইন্ডো ডেকরের কন্টেন্ট ভিউতে পৌঁছায় ততক্ষণ পর্যন্ত সার্চ করে। সাধারণত, আপনার কন্টেন্টকেCoordinatorLayoutএনক্লোজ করে পাঠানো সহজ। - stringId
- আপনি যে মেসেজ দেখাতে চান তার রিসোর্স আইডি। এটি ফর্ম্যাট করা বা আনফর্ম্যাট করা টেক্সট হতে পারে।
- সময়কাল
-
মেসেজটি কতক্ষণ ধরে দেখানো হবে। এটি
LENGTH_SHORTবাLENGTH_LONGহতে পারে।
ব্যবহারকারীকে মেসেজটি দেখানো
Snackbar তৈরি করার পরে, ব্যবহারকারীকে Snackbar দেখানোর জন্য এর show()
মেথড কল করুন:
mySnackbar.show()
সিস্টেম একই সময়ে একাধিক Snackbar অবজেক্ট দেখায় না, তাই ভিউতে বর্তমানে অন্য Snackbar দেখানো হলে, সিস্টেম আপনার Snackbar কোয়েরি করে এবং বর্তমান Snackbar-এর মেয়াদ শেষ হয়ে গেলে বা সেটি বাতিল করা হলে, আপনার দেখায়।
আপনি যদি ব্যবহারকারীকে কোনও মেসেজ দেখাতে চান এবং কোনও
Snackbar অবজেক্টের ইউটিলিটি মেথড কল করার প্রয়োজন না হয়, তাহলে Snackbar কল করার পরে show() আপনাকে Snackbar-এর রেফারেন্স রাখতে হবে না। এই
কারণে, একটি স্টেটমেন্টে Snackbar তৈরি ও দেখানোর জন্য মেথড চেইনিং ব্যবহার করা
সাধারণ ব্যাপার:
Snackbar.make( findViewById(R.id.myCoordinatorLayout), R.string.email_sent, Snackbar.LENGTH_SHORT ).show()