পপ-আপ মেসেজ তৈরি ও দেখানো

'কম্পোজ' ফিচার ব্যবহার করে দেখুন
Jetpack Compose হল Android-এর জন্য সাজেস্ট করা UI টুলকিট। Compose-এ কীভাবে বিজ্ঞপ্তি যোগ করতে হয় তা জানুন।

ব্যবহারকারীকে একটি সংক্ষিপ্ত মেসেজ দেখাতে, আপনি 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()