কম্পিউটার টিউটোরিয়াল

অ্যান্ড্রয়েডে Snackbar ব্যবহার করার পদ্ধতি

Material Design Snackbar ব্যবহার করে অ্যাকশনযোগ্য মেসেজ দেখানো

Snackbar হলো Material Design-এর একটি হালকা UI কম্পোনেন্ট যা স্ক্রিনের নিচে দীর্ঘক্ষণ না থাকা একটি মেসেজ দেখায় এবং ঐচ্ছিক অ্যাকশন বাটন (যেমন "Retry", "Undo") থাকতে পারে। এটি Toast-এর উন্নত সংস্করণ।

ধাপ ১: প্রজেক্ট তৈরি করুন

স্ট্যান্ডার্ড অ্যান্ড্রয়েড প্রজেক্ট।

ধাপ ২: Material Design ডিপেন্ডেন্সি যোগ করুন

build.gradle (Module: app) - dependencies ব্লকে:

dependencies {
    implementation 'com.android.support:design:28.0.0'
    // অথবা আধুনিক Material Components জন্য:
    // implementation 'com.google.android.material:material:1.9.0'
}

ধাপ ৩: লেআউট

res/layout/activity_main.xml - CoordinatorLayout সুপারিশ করা হয় (Snackbar-এর জন্য):

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
    xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <TextView
            android:id="@+id/textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:text="Click button below to bring up SnackBar" />
        <Button
            android:id="@+id/callbackButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/textView"
            android:layout_centerInParent="true"
            android:layout_marginTop="16sp"
            android:text="Tap to Display SnackBar"
            android:textStyle="bold"
            android:textSize="16sp" />
    </RelativeLayout>
</android.support.design.widget.CoordinatorLayout>

ধাপ ৪: Snackbar তৈরি এবং কাস্টমাইজেশন

src/MainActivity.java:

import android.graphics.Color;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        Button button = findViewById(R.id.callbackButton);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // Snackbar তৈরি - ভিউ (v).Anchor হিসেবে ব্যবহার হয়
                Snackbar snackBar = Snackbar.make(v, "An Error Occurred!", Snackbar.LENGTH_LONG)
                    .setAction("RETRY", new View.OnClickListener() {
                        @Override
                        public void onClick(View view) {
                            // Retry লজিক এখানে
                            Toast.makeText(MainActivity.this, "Retry clicked", Toast.LENGTH_SHORT).show();
                        }
                    });
                
                // অ্যাকশন বাটনের টেক্সট রঙ
                snackBar.setActionTextColor(Color.BLUE);
                
                // মেসেজ টেক্সট রঙ কাস্টমাইজ
                View snackBarView = snackBar.getView();
                TextView textView = snackBarView.findViewById(android.support.design.R.id.snackbar_text);
                textView.setTextColor(Color.RED);
                
                // ব্যাকগ্রাউন্ড রঙ (ঐচ্ছিক)
                // snackBarView.setBackgroundColor(Color.DKGRAY);
                
                snackBar.show();
            }
        });
    }
}

Snackbar-এর মূল বৈশিষ্ট্য

মেথড/প্রোপার্টিবর্ণনা
make(view, text, duration)Snackbar তৈরি (LENGTH_SHORT, LENGTH_LONG, LENGTH_INDEFINITE)
setAction(text, listener)অ্যাকশন বাটন যোগ করুন
setActionTextColor(color)অ্যাকশন টেক্সট রঙ
setDuration(duration)দেখানোর সময় পরিবর্তন
addCallback(callback)লাইফসাইকেল কলব্যাক (shown, dismissed)
setAnchorView(view)নির্দিষ্ট ভিউর উপরে দেখান (FAB-এর জন্য)

CoordinatorLayout কেন দরকার?

  • Snackbar স্বয়ংক্রিয়ভাবে FAB (FloatingActionButton) কে উপরে তুলে দেয়
  • সুইপ-টু-ডিসমিস অটোমেটিক্যালি কাজ করে
  • একাধিক Snackbar কিউइङ এবং আচরণ ম্যানেজ করে

কোটলিন এক্সটেনশন (সহজ সিনট্যাক্স)

// kotlinx.android.synthetic বা view binding ব্যবহার করলে
button.setOnClickListener {
    Snackbar.make(it, "Message", Snackbar.LENGTH_LONG)
        .setAction("ACTION") { /* handle */ }
        .setActionTextColor(Color.YELLOW)
        .show()
}
অ্যান্ড্রয়েডে Snackbar ব্যবহার করার পদ্ধতি
  1. অ্যান্ড্রয়েডে LocalBroadcastManager ব্যবহারের পদ্ধতি

  2. অ্যান্ড্রয়েডে Handler ব্যবহারের পদ্ধতি

  3. এন্ড্রয়েডে ViewFlipper ব্যবহার করার পদ্ধতি

  4. Android-এ NavigationView ব্যবহার করে নেভিগেশন ড্রয়ার তৈরির পদ্ধতি