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

ক্ষুদ্র প্রস্থের ("Smallest-width") কোয়ালিফায়ার ব্যবহার করুন

অ্যান্ড্রয়েড ৩.২ এর পূর্বেকার ডিভাইসে ডেভেলপারদের জন্য সমস্যার একটি ছিল "large" (বড়) স্ক্রিন সাইজ বিন, যা সাধারণভাবে ডেল স্ট্রেক (Dell Streak), সত্যিকার গ্যালাক্সি ট্যাব, এবং ৭" ট্যাবলেট কে অন্তর্ভূক্ত করে রাখে। কিন্তু , অনেক অ্যাপলিকেশন এই ক্যাটাগরিতে ভিন্ন ডিভাইসের জন্য ভিন্ন লেআউট দেখাতে চাইতে পারে (যেমন ৫" এবং ৭" ডিভাইসের জন্য), এমনকি যদিও তারা "large" (বড়) স্ক্রিন হিসাবে বিবেচিত হয়। এই কারনে অ্যান্ড্রয়েড ক্ষুদ্র প্রস্থের কোয়ালিফায়ার ("Smallest-width") (অন্যদের কাছে) অ্যান্ড্রয়েড ৩.২ এর মধ্যে চালু করেছিল।

ক্ষুদ্র প্রস্থের কোয়ালিফায়ার আপনাকে স্ক্রিনকে টার্গেট করতে দেয় যার dp তে দেয়া একটি নির্দিষ্ট ন্যুনতম প্রস্থ আছে। উদাহরণস্বরূপ, একটি প্রথাগত ৭" ট্যাবলেটের নু্যুনতম ৬০০ dp প্রস্থ রয়েছে, সুতরাং আপনি যদি চান আপনার ইউআইয়ের (UI) ওই স্ক্রিনে দুইটা পেন থাকুক (কিন্তু ছোট স্ক্রিনে একটি একক লিস্ট), আপনি পুর্বের অধ্যায় থেকে একক এবং দুই পেনের লেআউটের জন্য ওই দুইটা লেআউটই ব্যবহার করতে পারেন, কিন্তু large সাইজ কোয়ালিফায়ারের পরিবর্তে, দুই পেনের লেআউট স্ক্রিনের জন্য যাতে ক্ষুদ্র প্রস্থ হচ্ছে ৬০০ dp যেটা নির্দেশ করতে sw600dp ব্যবহার করুন:

  • res/layout/main.xml, single-pane (default) layout:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <fragment android:id="@+id/headlines"
              android:layout_height="fill_parent"
              android:name="com.example.android.newsreader.HeadlinesFragment"
              android:layout_width="match_parent" />
</LinearLayout>
  • res/layout-sw600dp/main.xml, two-pane layout:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal">
    <fragment android:id="@+id/headlines"
              android:layout_height="fill_parent"
              android:name="com.example.android.newsreader.HeadlinesFragment"
              android:layout_width="400dp"
              android:layout_marginRight="10dp"/>
    <fragment android:id="@+id/article"
              android:layout_height="fill_parent"
              android:name="com.example.android.newsreader.ArticleFragment"
              android:layout_width="fill_parent" />
</LinearLayout>

এটা বোঝায় যে যার ক্ষুদ্র প্রস্থ হচ্ছে ৬০০ dp এর সমান বা এর চেয় বড় সেটা layout-sw600dp/main.xml (দুই পেন) লেআউট নির্বাচন করবে, যেসময়ে ছোট স্ক্রিন layout/main.xml (একক-পেন) লেআউট নির্বাচন করবে।

কিন্তু এটা অ্যান্ড্রয়েড ৩.২ এর পূর্বেকার ডিভাইসে ভালোভাবে কাজ করে না, কারন sw600dp কে সাইজ কোয়ালিফায়ার হিসাবে চিনতে পারে না, তাই আপনার একটি res/layout-large/main.xml নামে ফাইল থাকা উচিত যা res/layout-sw600dp/main.xml এর সমতুল্য। পরবর্তী অধ্যায়ে আপনি একটি কৌশল দেকতে পারবেন যা এই উপায়ে আপনাকে লেআউট ফাইলের পূনরাবৃত্তি রোধ করতে দেয়।