میخوای وارد بازار کار بشی و محصولات خودت رو بفرشی همین الان ثبت نام کن
0

Fragment ها در اندروید

همان طور که می دانید دستگاه های اندروید دارای نمایشگرهایی با اندازه و تراکم پیکسلی متفاوت هستند.

Panel یا pane در اندروید، عبارت است از یک بخش یا قطعه از کل صفحه (UI) که کاربر با آن تعامل دارد. pane در واقع یک واژه ی کلی است که بیانگر قابلیت اندروید برای پشتیبانی از چندین view در کنار هم و در قالب یک view مرکب (واحد) بوده که ممکن است بسته به اندازه ی فضای موجود در نمایشگر از دستگاه به دستگاهی دیگر متفاوت باشد.

pane

 

در صورت عدم وجود فضای کافی، تنها یک panel به نمایش در می آید. از این معمولا تحت عنوان چیدمان یا قالب ( layout ) تک قطعه نام برده می شود.

panel

 

اما در دستگاه هایی که صفحه ی نمایش عریض تری دارند و در نتیجه فضای بیشتری در دسترس است (همچون تبلت)، طراحی چند قطعه این امکان را برای برنامه فراهم می کند تا چندین panel را همزمان به نمایش بگذارد.

 

دستگاه

 


شرح مفهوم  Fragment

Fragment در حقیقت یک کامپوننت UI مستقل در اندروید است که زیرمجموعه ی یک activity می باشد و بخشی از کل صفحه یا فرم را تشکیل می دهد (در نمایشگرهای بزرگ چند fragment و در نمایشگرهای کوچک تنها یک fragmentدر لحظه نمایش داده شده و صفحه ی قابل مشاهده برای کاربر را تشیکل می دهند.) به عبارت دیگر fragment در اندروید به شما اجازه می دهد تا UI انعطاف پذیر و سازگار با انواع نمایشگرها (کوچک و بزرگ) برای برنامه ی خود تعریف نمایید و اجزا رابط کاری اپلیکیشن را در قالب ماژول های مجزا کپسوله سازی نمایید.

Fragment با کپسوله سازی اجزا رابط کاربری و رفتار activity ها در ماژول های مجزا، این امکان را برای اپلیکیشن فراهم می کند تا از این ماژول های مجزا در چندین activity استفاده کند.

Fragment در بستر یک activity اجرا می شود، با این وجود دارای چرخه ی حیات و رابط کاربری اختصاصی خود است. البته یک fragment می تواند فاقد ظاهر و UIباشد که در اصطلاح headless fragment خوانده می شود .

 


 

Fragment ها و دسترسی به Context

Fragment ها از کلاس Context مشتق ( subclass ) نمی شوند. بنابراین برای دسترسی به activity میزبان بایستی متد () getActivity را صدا بزنید.

 


 

مزایای استفاده از fragment

fragment .1 ها چرخه ی حیات و رفتار خود را دارند. .

۲- می توان آن ها را در زمان اجرای اپلیکیشن و به صورت داینامیک کم و زیاد کرد. .

۳- می توان چندین fragment را با یکدیگر ترکیب کرده و UI های چند قطعه/چند پنجره ای و انعطاف پذیر ایجاد کرد. .

۴- این امکان نیز وجود دارد که یک fragment را در چندین activity بکار برد.

به کمک fragment می توانید برای دستگاه های کوچک UI یک قطعه ایجاد نموده و برای نمایشگرهای بزرگ رابط کاربری چند پنجره طراحی نمایید. همچنین می توانید با استفاده از fragment هر دو جهت نمایش ( landscape = نمای افقی و portrait= عمودی) در گوشی ها را مدیریت نمایید.

یکی از موارد کاربرد fragment در طراحی UI را می توان در ساخت لیست مشاهده کرد. اگر بر روی یک آیتم از لیست کلیک کنید، در صفحه ی تبلت، جزئیات مربوطه در همان صفحه، برای مثال در سمت راست به نمایش در می آیند. اما همین لیست در نمایشگر موبایل، کاربر را به صفحه ی مجزا حاوی جزئیات مرتبط هدایت می کند.

fragment

 

 

برای این مبحث اپلیکیشن شما باید دو fragment داشته باشد: main و detail

البته شما می توانید بسته به نیاز خود fragment های بیشتری تعریف نمایید. بعلاوه اپلیکیشن شما می بایست دو activity به شرح زیر داشته باشد main activity و detailed activity

در نمایشگر تبلت  main activity هر دو fragment را در layout خود به نمایش می گذارد. این در حالی است که main activity در صفحه نمایش موبایل ، فقط main fragment را در لحظه به نمایش می گذارد.

Fragment ها در اندروید
Fragment ها در اندروید

 


طراحی اپلیکیشنی با UI انعطاف پذیر و سازگار با نمایشگرهای مختلف به وسیله ی fragment ها

Fragment ها را می توان به صورت static تعریف کنید، بدین معنی که به وسیله ی تگ <fragment > در فایل layout می توانید مشخص کنید که activity از چندین fragment و قطعه تشکیل شود.

همان طور که گفته شد، شما می توانید fragment های یک activity را در زمان اجرا ویرایش کنید (کم یا زیاد کنید) که به آن تعریف به صورت پویا و dynamic definition گفته می شود.
برای اینکه بتوانید با توجه به فضای موجود در نمایشگر خود چند fragment را نمایش دهید، کافی است بر اساس یکی از روش های زیر اقدام نمایید:

۱- از یک activity استفاده کنید که در نمایشگرهای بزرگ (تبلت) و کوچک (گوشی همراه) دو fragment را برای کاربر در لحظه نمایش می دهد و در زمان لازم، fragment های قابل مشاهده در  activity (صفحه ی جاری) را به هنگام اجرای برنامه تغییر دهید. برای این منظور توصیه می شود دو نمونه از کلاس FrameLayout به عنوانplacholder ( مکان نگهدار موقتی ) در layout خود تعریف نموده، سپس fragment ها را در زمان اجرا به آن دو کلاس اضافه کنید.

در دستگاه های کوچک همچون گوشی، هر fragment را در activity جدا بگنجانید. برای مثال، اگر UI تبلت از دو fragment در یک activity استفاده می کند و در آن واحد دو قطعه را به نمایش می گذارد، همین activity را برای نمایشگر گوشی استفاده می کنید اما این بار فایل layout مجزا ارائه می دهید که تنها یک fragment را شامل می شود. چنانچه detailed fragment از قبل در نمایشگر حاضر باشد، آنگاه main activity به fragment دستور بروز رسانی خود را می دهد. اگر detail fragment در دسترس نبود، در آن صورت detail activity ، main activity را راه اندازی می کند.

اینکه کدام گزینه را انتخاب کنید کاملا به نیاز و مورد استفاده ی شما بستگی دارد. به طور معمول ویرایش fragmentدر زمان اجرا منعطف تر است، اما پیاده سازی آن کمی پیچیده تر می باشد.

 

 


امیدواریم آموزش Fragment ها در اندروید نیز برای شما مفید واقع شده باشد و ادامه آموزش برنامه نویسی اندروید رو دنبال کنید . برای مطالعه پست‌ها بیشتر ، ما را در مدرسه کدنویسی تلگرام  و یا در تی جوان اینستاگرام دنبال کنید.

نظراتتون رو زیر همین پست با ما به اشتراک بگذارید.

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

×

سلام کاربر عزیز

هر سوالی دارید در این بخش هستیم تا شما رو راهنمائی کنیم

روی لوگومون کلیک کنید

× چطور میتونم کمکتون کنم؟