خلاصه آموزش

  • فرگمنت چیست؟

  • چرخه حیات فرگمنت

  • آشنایی با متد های فرگمنت از جمله ()onCreateView

  • انواع فراگمنت ها

فرگمنت جزئی از رابط کاربری به حساب میاد که میتونه داخل اکتیویتی قرار بگیره (فراگمنت ها یک نوع sub-acitivity هستند) و به اکتیویتی ها قدرت طراحی بهتری میده.

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

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

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

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

در زیر مثالی از چگونگی قرارگرفتن دو فرگمنت در کنار هم در تبلت و جدا از هم در گوشی ها می بینید:

فرگمنت در اندروید

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

چرخه حیات فرگمنت (Fragment Life Cycle)

فرگمنت های اندرویدی، چرخه حیات مربوط به خود رو دارن که خیلی به اکتیویتی های اندرویدی شبیه هستند.در اینجا مراحل را به صورت خلاصه وار بیان می کنیم:

چرخه حیات فرگمنت ها

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

  • ()onAttach فرض کنید که ما یک اکتیویتی داریم که در حال نمایش است ،زمانی که ما فرگمنت ایجاد شده را به اکتیویتی الحاق می کنیم این متد فراخوانی می شود.
  • ()onCreate این متد در هنگام ساخته شدن فرگمنت فراخوانی می شود .شما می توانید در این مرحله اقدام به بارگذاری و یا بازیابی تنظیماتی کنید که می خواهید بر روی فرگمنت اعمال شود.
  • ()onCreateView این متد زمانی فراخوانی می شود که فرگمنت برای اولین بار بر روی صفحه نمایش رسم می شود.این تابع می تواند یک شی از نوع View را که به شی اشاره دارد که می خواهد روی صفحه رسم شود بازگرداند،چنانچه نمی خواهید چیزی بر روی صفحه رسم شود می توانید مقدار null را بازگردانید.
  • ()onActivityCreate این متد بعد ازمتد ()onCreateView فراخوانی می شود یعنی زمانی که اکتیویتی اصلی ایجاد شد.در این حالت فرگمنت و اکتیویتی همزمان با هم در حین نمایش ایجاد می شوند.از این به بعد می توانید جهت دسترسی به اشیا مختلف از متد ()findViewById استفاده کنید.
  • ()onStart زمانی که فرگمنت به حالت نمایش در میاید این متد نیز فراخوانی می شود.
  • ()onResume این متد زمانی که فرگمنت مجددا فعال می شود فراخوانی می شود.
  • ()onPause زمانی که فرگمنت در حال محو شدن از دید کاربر است این متد فراخوانی می شود .این متد بهترین مکان برای ذخیره شدن داده هایی است که نیاز دارید بعدا بازیابی کنید.
  • ()onStop زمانی که در فرگمنت به حالت تعویق در میاید این متد فراخوانی می شود.
  • ()onDestroyView زمانی که فرگمنت به صورت کامل محو می شود این متد فراخوانی می شود.
  • ()onDestroy این متد زمانی که فرگمنت به صورت کامل خاتمه می یابد و منابع به سیستم باز میگردد فراخوانی می شود.

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

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

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

انواع فرگمنت ها؟

  • فرگمنت های تکی:در این نوع از فرگمنت ها که بیشتر مناسب استفاده از دستگاه های با صفحه نمایش کوچک مانند گوشی های هوشمند هستند و در هر صفحه نمایش فقط یک  فرگمنت همانند اکتیویتی قرار می گیرد.
  • لیست فرگمنت : فرگمنت های که شامل یک نمایش لیست وار هستند به عنوان لیست فرگمنت تعریف می شوند.
  • فرگمنت های انتقال :توسط این فرگمنت ها می توان از یک فرگمنت به فرگمنت بعدی منتقل شد.

این خبر را به اشتراک بگذارید :