ব্যবহারকারীকে একটি সংক্ষিপ্ত বার্তা দেখানোর জন্য আপনি Snackbar ব্যবহার করতে পারেন। নোটিফিকেশনের মতো নয়, এই বার্তাটি অল্প সময়ের মধ্যে স্বয়ংক্রিয়ভাবে অদৃশ্য হয়ে যায়। Snackbar এমন সংক্ষিপ্ত বার্তার জন্য আদর্শ, যার ওপর ব্যবহারকারীকে কোনো পদক্ষেপ নেওয়ার প্রয়োজন হয় না। উদাহরণস্বরূপ, একটি ইমেল অ্যাপ ব্যবহারকারীকে জানাতে পারে যে অ্যাপটি সফলভাবে একটি ইমেল পাঠিয়েছে, এর জন্য Snackbar ব্যবহার করতে পারে।
একটি কোঅর্ডিনেটর লেআউট ব্যবহার করুন
একটি Snackbar একটি ভিউ-এর সাথে সংযুক্ত থাকে। যদি Snackbar View ক্লাস থেকে উদ্ভূত কোনো অবজেক্টের সাথে, যেমন যেকোনো সাধারণ লেআউট অবজেক্টের সাথে সংযুক্ত থাকে, তবে এটি মৌলিক কার্যকারিতা প্রদান করে। তবে, যদি Snackbar একটি CoordinatorLayout এর সাথে সংযুক্ত থাকে, Snackbar অতিরিক্ত কিছু বৈশিষ্ট্য লাভ করে:
- ব্যবহারকারী
Snackbarসোয়াইপ করে সরিয়ে দিতে পারেন। - যখন
Snackbarপ্রদর্শিত হয়, তখন লেআউটটি অন্যান্য UI এলিমেন্টগুলোকে সরিয়ে দেয়। উদাহরণস্বরূপ, যদি লেআউটটিতে একটিFloatingActionButtonথাকে, তাহলেSnackbarদেখানোর সময় লেআউটটি বাটনটির উপরেSnackbarআঁকার পরিবর্তে বাটনটিকে উপরের দিকে সরিয়ে দেয়। চিত্র ১-এ আপনি দেখতে পারেন এটি দেখতে কেমন।
CoordinatorLayout ক্লাসটি FrameLayout এর কার্যকারিতার একটি সুপারসেট প্রদান করে। যদি আপনার অ্যাপে আগে থেকেই একটি FrameLayout ব্যবহৃত হয়ে থাকে, তবে সম্পূর্ণ Snackbar কার্যকারিতা চালু করার জন্য আপনি সেই লেআউটটিকে একটি CoordinatorLayout দিয়ে প্রতিস্থাপন করতে পারেন। যদি আপনার অ্যাপে অন্য কোনো লেআউট অবজেক্ট ব্যবহৃত হয়, তবে আপনার বিদ্যমান লেআউট উপাদানগুলোকে একটি CoordinatorLayout মধ্যে র্যাপ করুন, যেমনটি নিম্নলিখিত উদাহরণে দেখানো হয়েছে:
<android.support.design.widget.CoordinatorLayout android:id="@+id/myCoordinatorLayout" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" 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> </android.support.design.widget.CoordinatorLayout>
আপনার CoordinatorLayout জন্য একটি android:id ট্যাগ সেট করুন। মেসেজ প্রদর্শন করার সময় আপনার লেআউটটির আইডি প্রয়োজন হবে।
চিত্র ১। Snackbar প্রদর্শিত হলে CoordinatorLayout FloatingActionButton উপরে সরিয়ে দেয়।
একটি বার্তা প্রদর্শন করুন
একটি বার্তা প্রদর্শন করার দুটি ধাপ রয়েছে। প্রথমত, আপনি বার্তার টেক্সট সহ একটি Snackbar অবজেক্ট তৈরি করবেন। তারপর, ব্যবহারকারীকে বার্তাটি দেখানোর জন্য আপনি সেই অবজেক্টের show() মেথডটি কল করবেন।
একটি Snackbar অবজেক্ট তৈরি করুন
স্ট্যাটিক Snackbar.make() মেথডটি কল করে একটি Snackbar অবজেক্ট তৈরি করুন। Snackbar তৈরি করার সময়, এটি যে বার্তাটি প্রদর্শন করবে এবং বার্তাটি কতক্ষণ ধরে দেখাবে তা নির্দিষ্ট করে দিন:
কোটলিন
val mySnackbar = Snackbar.make(view, stringId, duration)
জাভা
Snackbar mySnackbar = Snackbar.make(view, stringId, duration);
- দেখুন
- যে ভিউতে
Snackbarসংযুক্ত করতে হবে। এই মেথডটি প্রদত্ত ভিউ থেকে ভিউ হায়ারার্কি বরাবর অনুসন্ধান করে যতক্ষণ না এটি একটিCoordinatorLayoutবা উইন্ডো ডেকরের কন্টেন্ট ভিউতে পৌঁছায়। সাধারণত, আপনার কন্টেন্টকে ঘিরে থাকাCoordinatorLayoutপাস করা সহজতর। - স্ট্রিংআইডি
- আপনি যে বার্তাটি প্রদর্শন করতে চান তার রিসোর্স আইডি। এটি ফরম্যাট করা বা ফরম্যাটবিহীন টেক্সট হতে পারে।
- সময়কাল
- বার্তাটি দেখানোর সময়কাল। এটি
LENGTH_SHORTবাLENGTH_LONGহতে পারে।
ব্যবহারকারীকে বার্তাটি দেখান
Snackbar তৈরি করার পর, ব্যবহারকারীকে Snackbar দেখানোর জন্য এর show() মেথডটি কল করুন:
কোটলিন
mySnackbar.show()
জাভা
mySnackbar.show();
সিস্টেমটি একই সময়ে একাধিক Snackbar অবজেক্ট দেখায় না, তাই ভিউটি যদি বর্তমানে অন্য কোনো Snackbar প্রদর্শন করে, তবে সিস্টেম আপনার Snackbar কিউতে রাখে এবং বর্তমান Snackbar মেয়াদ শেষ হয়ে গেলে বা সেটি ডিসমিস হয়ে গেলে তা প্রদর্শন করে।
যদি আপনি ব্যবহারকারীকে কোনো বার্তা দেখাতে চান এবং Snackbar অবজেক্টের কোনো ইউটিলিটি মেথড কল করার প্রয়োজন না হয়, show() কল করার পর Snackbar এর রেফারেন্সটি রাখার দরকার নেই। এই কারণে, একটি স্টেটমেন্টেই Snackbar তৈরি ও দেখানোর জন্য মেথড চেইনিং ব্যবহার করা প্রচলিত।
কোটলিন
Snackbar.make( findViewById(R.id.myCoordinatorLayout), R.string.email_sent, Snackbar.LENGTH_SHORT ).show()
জাভা
Snackbar.make(findViewById(R.id.myCoordinatorLayout), R.string.email_sent, Snackbar.LENGTH_SHORT) .show();
