Sponsored

অ্যান্ড্রয়েড স্ন্যাকবার - Snackbar

0
49

স্ন্যাকবার / Snackbar  ম্যাটেরিয়াল ডিজাইনের অংশ। আমরা Toast ব্যবহার করে যেমন ইউজারকে বিভিন্ন মেসেজ দেখাই, এটা অনেকটা সে রকম। Toast এ সাধারণত ইউজার কোন একশন নিতে পারে না। কিন্তু স্ন্যাকবার ইউজার ইচ্ছে করলে সোয়াইপ করে হাইড করতে পারবে। বাটন যুক্ত করা যাবে। ইত্যাদি। আমরা স্ন্যাকবারের দুইটা ব্যবহার দেখব। একটা হচ্ছে সিম্পল স্ন্যাকবার। আরেকটা হচ্ছে একশন সহ স্ন্যাকবার।

স্ন্যাকবার যে লেআউটে দেখাবো, সে লেআউটে CoordinatorLayout যুক্ত করতে হবে। আর CoordinatorLayout হচ্ছে অ্যান্ড্রয়েড সাপোর্ট ডিজাইনের অংশ। তাই আমাদের app লেভেল গ্রেডেল ফাইলে অ্যান্ড্রয়েড সাপোর্ট ডিজাইন যুক্ত করতে হবেঃ

compile 'com.android.support:design:25.1.0'

কর্ডিনেট লেআউট যুক্ত করার পর আমরা এর ভেতর যে কোন লেআউটই যুক্ত করতে পারব, যেমন রিলেটিভ লেআউট, লিনিয়ার লেআউট ইত্যাদি।

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/coordinator_layout" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity">

</android.support.design.widget.CoordinatorLayout>

আমাদের লেআউটে দুইটা বাটন থাকবে। একটাতে ক্লিক করলে এক ধরনের স্ন্যাকবার দেখাবে। সম্পূর্ণ activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/coordinator_layout" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity">

<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:orientation="vertical" android:paddingTop="@dimen/activity_vertical_margin">

    <Button android:text="Simple Snackbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/simple" />

    <Button android:text="Snackbar with Action Callback" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/action_callback" />
</LinearLayout>
</android.support.design.widget.CoordinatorLayout>

স্ন্যাকবার দেখানো খুব সহজঃ

Snackbar snackbar = Snackbar
                    .make(coordinatorLayout, "Hello There!", Snackbar.LENGTH_LONG);
            snackbar.show();

স্ন্যাকবার তৈরি করতে তিনটে জিনিস লাগে, coordinatorLayout, যে টেক্সট দেখাবো আর কত সময় দেখাবো। যেমন উপরের স্যানকবার দেখাবে “Hello There!”। আর LENGTH_LONG এর পরিবর্তে আমরা LENGTH_SHOET, LENGTH_INDEFINITE ইত্যাদি দিতে পারি। LENGTH_INDEFINITE দিলে ইউজার নিজে ঐ স্ন্যাকবার সোয়াইপ করে হাইড করতে পারবে। আমরা চাইলে এখানে মিলিসেকেন্ডে যে কোন সময়ও দিতে পারি।

ঐটা ছিল সিম্পল স্ন্যাকবার। আমরা সাইলে একশন বাটন সহ স্ন্যাকবার দেখাতে পারি। তার জন্যঃ

           Snackbar snackbar = Snackbar
                    .make(coordinatorLayout, "Snackbar with Action", Snackbar.LENGTH_LONG)
                    .setAction("Button", new View.OnClickListener() {
                        @Override
                        public void onClick(View view) {
                            Snackbar snackbar1 = Snackbar.make(coordinatorLayout, "Action button clicked!", Snackbar.LENGTH_SHORT);
                            snackbar1.show();
                        }
                    });
            snackbar.show();

এখানে বাড়তি যুক্ত করেছি setAction. আর ঐখানে একটা বাটন দেখাবে। ঐ বাটনে ক্লিক করলে আমরা যে কোন কাজই সম্পাদন করতে পারি। আমি সিম্পল আরেকটা স্ন্যাকবার দেখিয়েছি। সম্পূর্ণ MainActivity.java:

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

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    Button mSimple, mAction;
    private CoordinatorLayout coordinatorLayout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        coordinatorLayout = (CoordinatorLayout) findViewById(R.id.coordinator_layout);


        mSimple = (Button) findViewById(R.id.simple);
        mSimple.setOnClickListener(this);

        mAction = (Button) findViewById(R.id.action_callback);
        mAction.setOnClickListener(this);



    }

    @Override
    public void onClick(View view) {

        if(view.getId()==R.id.simple){

            Snackbar snackbar = Snackbar
                    .make(coordinatorLayout, "Hello There!", Snackbar.LENGTH_INDEFINITE);
            snackbar.show();
        }else if(view.getId()==R.id.action_callback){


            Snackbar snackbar = Snackbar
                    .make(coordinatorLayout, "Snackbar with Action", Snackbar.LENGTH_LONG)
                    .setAction("Button", new View.OnClickListener() {
                        @Override
                        public void onClick(View view) {
                            Snackbar snackbar1 = Snackbar.make(coordinatorLayout, "Action button clicked!", Snackbar.LENGTH_SHORT);
                            snackbar1.show();
                        }
                    });
            snackbar.show();

        }

    }
}

সব কিছু ঠিক থাকলে নিচের মত দেখতে পাবেনঃ

আর সব কিছু ঠিক না থাকলে গিটহাব থেকে সোর্সকোড দেখতে পারেন। অ্যান্ড্রয়েড নিয়ে সব গুলো লেখা।

Sponsored
Sponsored
Search
Categories
Read More
Status
মামার বিয়ের শুভেচ্ছা ও অভিনন্দন বার্তা: ৫০+ শুভকামনা [২০২৬] - উক্তিবাড়ি - Nettumi
সূচিপত্র (Table of Contents) লুকান সংশ্লিষ্ট বিষয়: মামার বিয়ের, বিয়ের শুভেচ্ছা,...
By Nettumi 2026-10-07 17:16:29 0 14
Nulled
Mobile App Security: Best Practices for Developers | Intellectsoft
April 6, 2023...
By Nettumi 2026-09-21 04:47:03 0 84
Hacking Course
ব্যবহৃত আইফোন কেনার আগে যে বিষয়গুলো যাচাই করতে হবে - Banglatech24.com
স্মার্টফোনের দুনিয়ায় আইফোন এক অতি পরিচিত নাম। অ্যাপলের তৈরি এই স্মার্টফোন দীর্ঘ সময় জুড়ে...
By Nettumi 2026-09-25 09:48:53 0 59
Tech
জাভাতে LinkedList [ লিঙ্কড লিস্ট ] ও এর ব্যবহার।
LinkedList একটি ডেটা স্ট্র্যাকচার যা অনেক গুলো ডেটা [বা collections of data] সংরক্ষন করার জন্য...
By Nettumi 2026-09-30 18:44:14 0 81
Tech
ঘোষণা হল OpenAI-এর “প্রজেক্ট স্টারগেট”! 500 BILLION-এর AI মেগা ফ্যাক্টরি! ভবিষ্যতের পথে এক বিশাল পদক্ষেপ! | Techtunes | টেকটিউনস
মজিলার নির্বাচিত সাতটি বেস্ট ফায়ারফক্স 3 অ্যাডঅন দুঃসাহসী টিনটিন
By Nettumi 2026-09-25 03:48:35 0 80
‎ ‎ ‎
Nettumi https://nettumi.com