آموزش Fragment ها - در برنامه نویسی اندروید

یک Fragment قطعه ای از یک اکتیویتی است که طراحی فعالیت مدولارتر را امکان پذیر می کند. اگر بگوییم فرگمنت یک نوع اکتیویتی فرعی است اشتباه نخواهد بود.

در ادامه نکات مهمی در مورد فرگمنت ذکر شده است:

  • یک Fragment طرح‌بندی خاص خود را دارد و رفتار خاص خود را با تماس‌های چرخه حیات خاص خود دارد.
  • می‌توانید در حین اجرای اکتیویتی، Fragmentهایی را در یک اکتیویتی اضافه یا حذف کنید.
  • شما می توانید چند Fragment را در یک اکتیویتی واحد ترکیب کنید تا یک رابط کاربری چند صفحه ای بسازید.
  • یک Fragment را می توان در چندین اکتیویتی استفاده کرد.
  • چرخه حیات Fragment ارتباط نزدیکی با چرخه حیات اکتیویتی میزبان آن دارد، به این معنی که وقتی اکتیویتی متوقف می شود، تمام Fragmentهای موجود در اکتیویتی نیز متوقف می شوند.
  • یک Fragment می تواند رفتاری را اجرا کند که هیچ جزء رابط کاربری ندارد.
  • Fragment به API اندروید در نسخه Honeycomb اندروید که API نسخه 11 اضافه شده است.

شما با گسترش کلاس Fragment میتوانید Fragmentهایی ایجاد کنید و می‌توانید با اعلام فرگمنت در فایل طرح‌بندی اکتیویتی، به عنوان عنصر <fragment>، آن فرگمنت را در طرح‌بندی اکتیویتی خود وارد کنید.

معرفی Fragment

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

در زیر یک مثال معمولی از نحوه ترکیب دو ماژول رابط کاربری تعریف شده توسط Fragmentها در یک اکتیویتی برای طراحی تبلت، اما برای طراحی گوشی از هم جدا شده است.

این برنامه می تواند در هنگام اجرا بر روی دستگاهی به اندازه تبلت، دو فرگمنت را در اکتیویتی A جاسازی کند. با این حال، در صفحه‌ای به اندازه گوشی، فضای کافی برای هر دو بخش وجود ندارد، بنابراین فعالیت A فقط بخش فهرست مقالات را شامل می‌شود و وقتی کاربر مقاله‌ای را انتخاب می‌کند، فعالیت B را شروع می‌کند که شامل بخش دوم برای خواندن مقاله است.

چرخه زندگی Fragment

Fragment اندروید چرخه زندگی خود را بسیار شبیه به یک اکتیویتی اندرویدی ساخته است. در این بخش مراحل مختلف چرخه زندگی آن خلاصه می شود.

Android Fragment

در اینجا لیستی از متدهایی وجود دارد که می توانید آنها را در کلاس Fragment خود override کنید.

  • onAttach() – نمونه Fragment با یک نمونه اکتیویتی مرتبط است. فرگمنت و اکتیویتی به طور کامل مقداردهی اولیه نشده اند. معمولاً در این متد شما یک ارجاع به اکتیویتی دریافت می کنید که از فرگمنت برای کار اولیه سازی بیشتر استفاده می کند.
  • onCreate() – سیستم این متد را هنگام ایجاد فرگمنت فراخوانی می کند. شما باید اجزای اساسی فرگمنت را که می خواهید در زمان توقف اکتیویتی یا توقف فرگمنت حفظ کنید، را مقداردهی کنید.
  • onCreateView() – سیستم این callback را زمانی فراخوانی می کند که زمان آن فرا می رسد که فرگمنت برای اولین بار رابط کاربری خود را ترسیم کند. برای ترسیم UI برای فرگمنت خود، باید یک کامپوننت View را از این متد برگردانید که ریشه طرح بندی Fragment شما است. اگر Fragment یک UI ارائه نمی کند، می توانید null را برگردانید.
  • onActivityCreated() –  متد onActivityCreated() پس از متد onCreateView() هنگام ایجاد اکتیویتی میزبان فراخوانی می شود. در این مرحله می توان با متد findViewById() به view دسترسی پیدا کرد. مثال. در این متد می توانید اشیایی را که به یک شی Context نیاز دارند، نمونه سازی کنید.
  • onStart()- متد onStart() زمانی فراخوانی می شود که فرگمنت قابل مشاهده باشد.
  • onResume() – این متد زمانی که Fragment فعال می شود فراخوانی میشود.
  • onPause() – سیستم این متد را به عنوان اولین نشانه ای که کاربر فرگمنت را ترک می کند فراخوانی می کند. این معمولاً جایی است که باید هر گونه تغییری را که باید پس از جلسه کاربر فعلی ادامه یابد، انجام دهید.
  • onStop() – سیستم زمانی این متد را فراخوانی میکند که fragment متوقف شود.
  • onDestroyView() – نمای fragment پس از فراخوانی این متد از بین می رود.
  • onDestroy() – متد onDestroy() برای انجام پاکسازی نهایی وضعیت fragment فراخوانی میشود اما تضمینی برای فراخوانی آن توسط پلتفرم اندروید وجود ندارد.

چگونه از یک Fragment استفاده کنیم؟

این کار شامل چندین مرحله ساده برای ایجاد فرگمنت است.

  • اول از همه تصمیم بگیرید که چه تعداد فرگمنت می خواهید در یک اکتیویتی استفاده کنید. به عنوان مثال، اجازه دهید از دو فرگمنت برای مدیریت حالت افقی و عمودی دستگاه استفاده کنیم.
  • سپس بر اساس تعداد Fragment، کلاس هایی ایجاد کنید که کلاس فرگمنت را گسترش می دهند. کلاس Fragment دارای توابع فراخوانی است که در بالا ذکر شد. شما می توانید هر یک از توابع را بر اساس نیاز خود override کنید.
  • برای هر فرگمنت، باید فایل های طرح بندی را در فایل XML ایجاد کنید و آن را روی فرگمنت تنظیم کنید.
  • در نهایت فایل اکتیویتی را تغییر دهید تا منطق واقعی جایگزینی فرگمنت بر اساس نیاز شما تعریف شود.

انواع Fragment

اساساً Fragmentها بر اساس نیاز به سه بخش تقسیم میشوند:

  • Fragmentهای تک فریم – Fragmentهای تک فریم برای دستگاه‌های نگهدارنده دستی مانند موبایل استفاده می‌شوند، در اینجا می‌توانیم تنها یک فرگمنت را نشان داد.
  • لیست Fragmentها – Fragmentهای که نمای لیست خاصی دارند به عنوان Fragmentهای لیست مشخص می شوند.
  • Fragment های قابل جابجایی – با استفاده از تراکنش فرگمنت ما می توانیم یک فرگمنت را به فرگمنت دیگر منتقل کنیم.

دیدگاه‌ها و پرسش‌ها

برای ارسال نظر نیاز است تا ابتدا وارد سایت شوید.

هیچ نظری ارسال نشده است.

قیمت آموزش
رایگان
نوع دسترسی
رایگان

این مقاله در حال حاضر تنها به روش رایگان در دسترس می باشد.

ناصر خالدی
مدرس دوره

ناصر خالدی

مهندس شبکه, امنیت, برنامه نویسی تلفن های هوشمند, طراح وب سایت و متخصص هوش مصنوعی

گفتگوی برنامه نویسان

بخشی برای حل مشکلات برنامه‌نویسی و مباحث پیرامون آن

دوره های پیشنهادی

مقالات پیشنهادی

اندروید

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


۱۰۵۴
۰
۲۹ آبان ۱۳۹۹

نود جی اس

توسعه دهندگان نود جی اس, زبان جاوا اسکریپت را از یک زبان قابل اجرا در مرورگر خارج کرده و به زبانی تبدیل کردن که بتوان آن را بصورت یه اپلیکیشن مستفل اجرا کرد و ...


۹۱۲
۰
۱۲ آذر ۱۳۹۹

درباره فایل Robots.txt

این فایل ربات های خزنده موتور های جستجو را راهنمایی می کنند و به آنان می فهماند که چه دایرکتوری و لینک هایی قابل بررسی و چه دایرکتوری و لینک هایی غیرقابل برررسی می باشند...


۷۵۵
۰
۲ دی ۱۳۹۹

پی اچ پی - PHP

با استفاده از این زبان می توان وب سایت های پویا طراحی کرد, این زبان می تواند با HTML ادغام شود, در حقیقت یک زبان اسکریپتی متن باز و رایگان است. یعنی زمانی که سرور درخواست ...


۹۴۵
۰
۱۳ آذر ۱۳۹۹

Fatal error: Uncaught wfWAFStorageFileException: Unable to verify temporary file contents for atomic writing. in /home/clonerco/public_html/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php:52 Stack trace: #0 /home/clonerco/public_html/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php(659): wfWAFStorageFile::atomicFilePutContents('/home/clonerco/...', '<?php exit('Acc...') #1 [internal function]: wfWAFStorageFile->saveConfig('livewaf') #2 {main} thrown in /home/clonerco/public_html/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php on line 52