آموزش برنامه نویسی اندروید – قاب ها در اندروید fragment

  • توسط king2
  • چهارشنبه , ۲۶ مهر ۱۳۹۶
  • 210 بازدید
  • 0

قاب ها در اندروید

یک قاب (fragment)  نماینده ی یک اکتیویتی در صفحه است؛ که طراحی اکتیویتی در مدل های مختلف را امکان پذیر می سازد. همچنین می توانیم بگوییم قاب ها در اندروید یک sub-activity هستند.

زیر نکاتی مهم در مورد fragment آورده شده است:

  • یک قاب ساختاری اختصاصی دارد؛ چرا که لایه، رفتار و چرخه ی حیات مربوط به خودش را داشته و می توان گفت مستقل عمل می کند.
  • هنگامی که یک فعالیت در حال اجرا است می توان قاب ها را اضافه و یا حذف کرد.
  • می توان در یک اکتیویتی، برای ساختن رابط کاربر چند صفحه ای، چند قاب را با یکدیگر ترکیب کرد.
  • یک قاب می تواند در چندین اکتیویتی استفاده شود.
  • چرخه ی حیات یک قاب، وابسته به چرخه ی حیات اکتیوتیِ میزبانش است. یعنی زمانی که اکتیویتی متوقف می شود، تمام قاب های موجود در اکتیویتی نیز متوقف خواهند شد.
  • یک قاب می تواند رفتاری را اجرا کند که اجزای رابط کاربری قادر به انجام آن نیستند
  • قاب ها در APIی نسخه ی ۱۱ به بعد به اندروید افزوده شده اند.

مطلب پیشنهادی: سازماندهی و دسترسی به منابع اندروید

شما می توانید با استفاده از کلاس Fragment یک قاب بسازید و با تعریف کردن قاب در فایل اکتیویتی توسط تگ <fragment>  می توانید از آن در اکتیویتی مورد نظر استفاده کنید.

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

برای مثال در تصویر زیر نشان داده شده است که چگونه با استفاده از قاب ها دو مدل رابط کاربری تعریف شده، که هنگام نمایش روی تبلت دو قاب در یک اکتیویتی با یکدیگر ترکیب می شوند اما هنگام نمایش روی گوشی همراه از هم جدا هستند.

قاب ها در اندروید

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

 

چرخه ی حیات قاب ها

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

قاب ها در اندروید

در زیر لیست متد هایی که شما می توانید در کلاس نوشته شده برای یک قاب از آن ها استفاده کنید آورده شده است:

  • ()onAttach ; قاب را به اکتیویتی معرفی می کند. هنگام فراخوانی این متد قاب و اکتیویتی هنوز ایجاد نشده اند و شما می توانید با استفاده از آن کارهایی را که می خواهید قبل از راه اندازی قاب انجام شوند پیاده سازی کنید.
  • ()onCreate سیستم هنگامی که در حال ساختن قاب است این متد را فراخوانی می کند. شما باید کامپوننت هایی از قاب را که می خواهید هنگام ادامه یافتن مجدد، پس از مکث یا توقف قاب حفظ شوند، در این متد مقدار هی اولیه کنید.
  • ()onCreateView هنگامی که قاب برای اولین بار بخواهد رابط کاربری خودش را بسازد، سیستم این متد را فراخوانی می کند. برای پیاده سازی رابط کاربری قاب، شما باید یک شی View را که مشخص کننده ی دایرکتوری لایه ی قاب است، به عنوان مقدار بازگشتی برای این متد تعیین کنید. اگر قاب شما رابط کاربری ندارد می توانید مقدار بازگشتی تابع را NULL تعیین کنید.
  • ()onActivityCreated این متد بعد از متد onCreateView()، هنگامی که اکتیویتی میزبان ساخته شد، فراخوانی می شود. اکتیویتی و قاب به عنوان یک شی viewی سلسه مراتبی برای اکتیویتی ساخته می شوند. در این مرحله شما می توانید با استفاده از متد findViewById() به شی view دسترسی پیدا کنید.
  • ()onStart هنگامی که قاب قابل مشاهده شود، این متد فراخوانی می گردد.
  • ()onResume مربوط به زمانی می شود که قاب در حال اجرا شدن باشد.
  • ()onPause هنگامی که کاربر قاب را ترک می کند، این متد به عنوان اولین نشانه توسط سیستم فراخوانی می شود. اگر در این مرحله چیزی نیاز به ذخیره داشت آن را ذخیره کنید، چراکه ممکن است بعد از این حالت برنامه از حافظه پاک شود و به مرحله بعد نرود.
  • ()onStop هنگامی که اکتیویتیِ قاب در حال متوقف شدن باشد این متد فراخوانی می شود.
  • ()onDestroyView بعد از خراخوانی این متد، رابط کاربری قاب از بین خواهد رفت.
  • ()onDestroy این متد پاکسازی نهایی قاب ما را انجام می دهد، اما برای این که به این مرحله برسیم و این متد توسط سیستم فراخوانی شود هیچ تضمینی وجود ندارد.

مطلب پیشنهادی: بررسی اجمالی و تاریخچه اندروید

نحوه استفاده از قاب ها

در این جا تعدادی از مراحل ساده برای ایجاد قطعه آورده شده است.

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

انواع قاب ها در اندروید

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

  • قاب های تکی (Single frame fragments) : برای دستگاه های کوچک نظیر گوشی های هوشمند استفاده می شوند؛ دستگاه هایی که در یک لحظه تنها ظرفیت نشان دادن یک قاب را دارند.
  • قاب لیست ها (List fragments) : قاب هایی که مخصوص نمایش لیست هستند .
  • قاب های انتقالی (fragment transaction) : با آن ها می توانیم به صورت پیوسته بین قاب ها حرکت کنیم و از یک قاب به دیگری برویم.

منبع: tutorialspoint

  • facebook
  • googleplus
  • twitter
  • linkedin
  • linkedin
قبلی «
بعدی »

دیدگاهتان را بنویسید

تازه های طراحی سایت

بهینه سازی وبسایت

دانستی های سایت