مقدمه
یکی از مشکلات اصلی اندروید این است که سازندگان دستگاهها همپا و همگام گوگل نسخههای سیستمعامل اندروید دستگاههای ساخت خودشان را منتشر نمیکنند. این مسأله باعث شده است که کاربران نتوانند از آخرین نسخههای سیستم عامل اندروید استفاده کنند. گوگل در سالهای اخیر سعی کرده است با برنامههای تشویقی سازندگان را تشویق کند تا گوشیهایشان را بروزرسانی کنند ولی هنوز توفیق چندانی نداشته است. در حال حاضر حدود ۱۰ درصد گوشیهای اندروید در بازار از نسخه Gingerbread یا نان زنجبیلی اندروید استفاده میکنند که نسخه ۲.۳ این سیستم عامل است. در زمان نگارش این مطلب اندروید نسخه ۵.۱ ماهها است که عرضه شده است و نسخه ۶ اندروید (که اندروید مارشملو نام دارد) در آستانه عرضه نهایی است. این مسأله باعث شده است توسعهدهندگان اندروید نتوانند از خیلی از ویژگیهای اندروید که در نسخههای آخر آن عرضه شده است استفاده کنند. در واقع معامله اصلی این است: نوشتن برنامهای زیبا و کاربردیی که کاربران زیادی نمیتوانند از آن استفاده کنند یا داشتن کاربران زیادی که از برنامهای با امکانات ضعیف و نابروز استفاده میکنند. راهحل چیست؟ اگر بشود برخی از امکانات نسخههای متأخر اندروید را به نسخههای قدیمیتر انتقال داد میتوان تا حد زیادی بر این مشکل غلبه کرد. کتابخانه پشتیبان یا Support Library دقیقاً همین کار را میکند.
Support Library چیست؟
مدتها قبل گوگل برای حل مشکلی که گفتیم و اصطلاحاً Fragmentation یا چندپارگی نامیده میشود راهحلی ارائه داده است که کتابخانه پشتیبان یا Support Library نامیده میشود. با استفاده از Support Library میتوان ویژگیهای جدید اضافه شده به Android SDK را به همراه برنامه قرار داد تا برنامه بتواند از این امکانات در نسخههای قدیمتر اندروید استقاده کند.
آخرین نسخه Support Library قسمتی دارد به نام Design Support Library یا کتابخانه پشتیبان طراحی که کار آن اضافه کردن بسیاری از امکانات طراحی متریال گوگل به برنامههایی است که میخواهند روی اندرویدهای قدیمیتر از ۵ یا آبنبات چوبی (همان lollipop) اجرا شوند. در این مطلب با برخی از امکانات Design Support Library آشنا میشویم.
این مطلب ترجم آزادی است از وبلاگ توسعهدهندگان اندروید گوگل. مطلب اصلی را میتوانید اینجا ببینید.
اندروید ۵ یا آبنبات چوبی امکانات فراوان و متنوع جدیدی معرفی کرده است که مهمترین و هیجانانگیزترین آنها قطعاً زبان طراجی جدید اندروید است که با نام طراحی متریال یا Material Design شناحته میشود. این طراحی جدید که حاصل دو سال کار مستمر یک تیم حرفهای طراحی است به طور کامل تجربه کاربری اندروید را متحول میکند. برای استفاده از این امکانات در نسخههای ماقبل اندروید ۵ میتوانید از کتابخانه Design Support Library استفاده کنید.
Navigation View
کشوی راهبری یا Navigation View یکی از اجزای اصلی هویت برنامههای اندروید است. از این کشو برای هدایت کاربر در برنامه استفاده میشود. درباره اصول طراحی Vavigation View اینجا را ببینید. NavigationView یک View است که با کمک آن هم میتوانید یک کشوی راهبری بسازید و هم به سادگی آن را با منوی تعریف شده در منابع (res) پر کنید.
برای استفاده از NavigationView آن را درون یک NavigationDrawer قرار میدهید:
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <!-- your content layout --> <android.support.design.widget.NavigationView android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" app:headerLayout="@layout/drawer_header" app:menu="@menu/drawer"/> </android.support.v4.widget.DrawerLayout>
همانطور که در کد بالا میبینید، ویژگیهای جدیدی به NavigationView افزوده شده است مثل app:headerLayout که مشخص میکند در سربرگ NavigationView از چه چیدمانی استفاده میشود و app:menu که مشخص میکند عناصر اصلی این NavigationView از کدام منو پر میشود.
یک منوی ساده که میتوان از آن در NavigationView استفاده کرد شبیه قطعه کد زیر است:
<group android:checkableBehavior="single"> <item android:id="@+id/navigation_item_1" android:checked="true" android:icon="@drawable/ic_android" android:title="@string/navigation_item_1"/> <item android:id="@+id/navigation_item_2" android:icon="@drawable/ic_android" android:title="@string/navigation_item_2"/> </group>
آیتم checked با رنگ متفاوت نمایش داده میشود تا کاربر بداند که الان در کدام قسمت برنامه است. شما همچنین میتوانید از زیر مجموعه هم در این منو استفاده کنید:
<item android:id="@+id/navigation_subheader" android:title="@string/navigation_subheader"> <menu> <item android:id="@+id/navigation_sub_item_1" android:icon="@drawable/ic_android" android:title="@string/navigation_sub_item_1"/> <item android:id="@+id/navigation_sub_item_2" android:icon="@drawable/ic_android" android:title="@string/navigation_sub_item_2"/> </menu> </item>
برچسبهای شناور برای EditText
حتا ویوی سادهای مثل EditText هم از تغییرات طراحی متریال بهره برده است! در EditText متن Hint با شروع به تایپ کردن و وارد کردن اولین حرف ناپدید میشود و این ممکن است کاربر را به اشتباه بیاندازد. حال اگر EditText را در یک TextInputLayout قرار بدهید Hint مثل یک برچسب شناور عمل میکند و زمانی که شروع به تایپ میکنید در بالای EditText نمایش داده میشود:
دکمه عملیات شناور یا Floating Action Button
دکمه عملیات شناور یا Floating Action Button که به صورت حلاصه FAB هم نامیده میشود یکی از مهمترین عناصر طراحی متریال است تا جایی که بسیاری اوقات صرفاً به خاطر استفاده از این دکمه خیلیها فکر میکنند برنامهها از طراحی متریال استفاده میکنند!
FAB یک دکمه گرد است که عملیات اصلی صفحه را انجام میدهد. FloatingActionButton یک پیادهسازی یکپارچه با رنگ colorAccent که در منابع تعریف کردهاید در اختیارتان میگذارد. از آنجایی که FloatingActionButton از ImageView ساخته شده است به سادگی با android:src در چیدمان یا setImageDrawable در کد آیکون مطلوب را در آن نمایش دهید.
در قسمت بعدی با تعدادی دیگر از ویژگیهای Design Support Library آشنا شده و در قسمت بعدی در یک پروژه عملی آموختهها را به کار خواهیم بست! با ما باشید!
بسیار عالی بود
عالی عالی عالی
یاخجی یازیلار یاییرسیز. اَللرینیز آغریماسین.
نوشته های خوبی مننشر میکنید. دستاتون درد نکنه.
سپاسگزارم!