বাংলায় অ্যান্ড্রয়েড সহায়িকা - Bangla Android Guide

সোয়াইপ ভিউ বাস্তবায়ন

আপনি Support Libraryতে থাকা ViewPager উইডজিট (Widget) ব্যবহার করে আপনার অ্যাপের মধ্যে সোয়াইপ ভিউ তৈরী করতে পারেন। ViewPager হচ্ছে একটি লেআউট উইডজিট (Widget) যার মধ্যে প্রতিটা চাইল্ড ভিউ লেআটের মধ্যে একটি পৃথক পেজ ( একটি পৃথক ট্যাব)।

ViewPager দিয়ে আপনার লেআউট সেট আপ করতে, আপনার XML লেআউটে < ViewPager> এলিমেন্ট যোগ করুন। উাদহরনস্বরূপ, যদি সোয়াইপ ভিউয়ের প্রতিটা পেজ সমগ্র লেআউট ব্যবহার করে থাকে, তখন আপনার লেআউট দেখতে এরকম হবে:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.view.ViewPager
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/pager"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

প্রতিটা পেজ পরিবেশন করা চাইল্ড ভিউ প্রবেশ করাতে, আপনাকে একটি PagerAdapter এ এই লেআউট আটকেিয় দিতে হবে। দুইটা অ্যাডাপটর আছে যেগুলো আপনারা ব্যবহার করতে পারবেন:

FragmentPagerAdapter

এটাই ভালো যখন সিবলিং স্ক্রিনের মধ্যে নেভিগেট করা হয় যা একটি স্থায়ী, অল্প সংখ্যাক পেজ পরিবেশন করে।

FragmentStatePagerAdapter

একটি অবজেক্টে যার জন্য পেজের সংখ্যা অনির্ধারিত তার কালেকশণ (সংগ্রহ) জুড়ে পেজিং এর জন্য এটা ভালো। এটা ফ্রাগমেন্ট ধ্বংস করে দেয় যখন ইউজার অন্য পেজে নেভিগেট করে চলে যায়, যা মেমরী ব্যবহার কমিয়ে দেয়।

উাদহরণস্বরূপ, এখানে আছে কীভাবে Fragment অবজেক্টের একটি সংগ্রহ জুড়ে সোয়াইপ করতে আপনি FragmentStatePagerAdapter ব্যবহার করতে পারেন:

public class CollectionDemoActivity extends FragmentActivity {
    // When requested, this adapter returns a DemoObjectFragment,
    // representing an object in the collection.
    DemoCollectionPagerAdapter mDemoCollectionPagerAdapter;
    ViewPager mViewPager;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_collection_demo);

        // ViewPager and its adapters use support library
        // fragments, so use getSupportFragmentManager.
        mDemoCollectionPagerAdapter =
                new DemoCollectionPagerAdapter(
                        getSupportFragmentManager());
        mViewPager = (ViewPager) findViewById(R.id.pager);
        mViewPager.setAdapter(mDemoCollectionPagerAdapter);
    }
}

// Since this is an object collection, use a FragmentStatePagerAdapter,
// and NOT a FragmentPagerAdapter.
public class DemoCollectionPagerAdapter extends FragmentStatePagerAdapter {
    public DemoCollectionPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int i) {
        Fragment fragment = new DemoObjectFragment();
        Bundle args = new Bundle();
        // Our object is just an integer :-P
        args.putInt(DemoObjectFragment.ARG_OBJECT, i + 1);
        fragment.setArguments(args);
        return fragment;
    }

    @Override
    public int getCount() {
        return 100;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return "OBJECT " + (position + 1);
    }
}

// Instances of this class are fragments representing a single
// object in our collection.
public static class DemoObjectFragment extends Fragment {
    public static final String ARG_OBJECT = "object";

    @Override
    public View onCreateView(LayoutInflater inflater,
            ViewGroup container, Bundle savedInstanceState) {
        // The last two arguments ensure LayoutParams are inflated
        // properly.
        View rootView = inflater.inflate(
                R.layout.fragment_collection_object, container, false);
        Bundle args = getArguments();
        ((TextView) rootView.findViewById(android.R.id.text1)).setText(
                Integer.toString(args.getInt(ARG_OBJECT)));
        return rootView;
    }
}

এই উদাহরন সোয়াইপ ভিউ তৈরী করার জন্য প্রয়োজনীয় কোড গুলিই দেখায়। নিচের অধ্যায়গুলি দেখাবে কীভাবে পেজগুলির মধ্যে নেভিগেশন করতে সঞ্চালন সহায়তা করতে আপনি কীভাবে ট্যাব যোগ করতে পারেন।