یک قطعه (Fragment) بخشی از واسط کاربری یک اپلیکیشن و یا رفتاری است که شما میتوانید آن را در یک فعالیت قرار دهید. این مولفه امکان طراحی پیمانه ای بیشتر فعالیت ها را فراهم میکند. می توان گفت که یک قطعه نوعی فعالیت فرعی (sub-acitivity) است. در زیر نکات مهم مربوط به قطعه آورده شده است .
شما قطعات را با توسعه کلاس Fragment ایجاد می کنید و می توانید با معرفی کردن یک قطعه به عنوان یک عنصر <fragment>، در فایل صفحه بندی فعالیت، آن را در صفحه بندی فعالیت خود وارد کنید.
مثال زیر نشان میدهد که چگونه دو مولفه واسط کاربری که به وسیله قطعات تعریف شده اند، می توانند در طراحی برای یک تبلت با هم ترکیب شوند ولی در طراحی برای یک گوشی از هم جدا شوند.
اپلیکیشن در زمان اجرا بر روی دستگاهی با سایز تبلت، می تواند شامل دو قطعه در فعالیت A باشد. با این حال، بر روی صفحه نمایش دستگاهی مانند گوشی، فضای کافی برای هر دو قطعه وجود ندارد. بنابراین فعالیت A، فقط شامل قطعه ای برای نمایش لیست مقاله ها خواهد بود و زمانی که کاربر یک مقاله را انتخاب می کند، فعالیت B آغاز می شود که شامل قطعه دوم برای خواندن مقاله است.
قطعات اندرویدی دارای چرخه حیات خاص خود هستند که بسیار شبیه به چرخه حیات یک فعالیت اندرویدی است. این بخش، مراحل مختلف این چرخه حیات را به صورت خلاصه بیان می کند.
onAttach() در این متد منبعی را برای اکتیویتی جهت کارهای پیاده سازی دریافت میکنید. onCreate() این متد زمانی اجرا میشود که فرگمنت بوجود بیاید ، شما باید اجزای ضروری را که قرار است هنگام pause یا stop شدن حفظ شود و با resume برگردانده شود ، را در اینجا تعریف کنید.
onCreateView() این متد زمانی اجرا میشود که فرگمنت آماده ی نمایش رابط کاربری خود هست برای اینکه بتوانید UI خاصی را برای فرگمنت خود نمایش دهید باید اجزای آن را توسط این متد برگردانید . این متد ریشه ی اصلی UI فرگمنت شما هست و اگر فرگمنت شما بدون رابط کاربری هست میتوانید null برگردانید.
onActivityCreated() این متد دقیقا بعد از متد onCreateView() اجرا میشود زمانی که اکتیویتی اصلی که فرگمنت مربوط به آن هست بوجود بیاید. فرگمنت و اکتیویتی همزمان بوجود می آیند زمانی که رابط کاربری اکتیویتی نمایش داده شود . در این مرحله ، شما میتوانید به تمام view ها با استفاده از متد findViewById() دسترسی داشته باشید. onStart() زمانی که فرگمنت نمایش داده شد این متد برای یکبار اجرا میشود .
onResume() از نامش مشخص هست زمانی که فرگمنت فعالیت خود را از سربگیرد.
onPause() این متد زمانی اجرا میشود که کاربر فرگمنت را ترک کند به اصطلاحی فرگمنت به حالت pause درآید . در این متد هست که شما باید تمام تغییرات را ذخیره کنید.
onStop() زمانی که فرگمنت متوقف شود این متد اجرا میشود.
onDestroyView() رابط کاربری مربوط به فرگمنت ، بعد از اجرای این متد از بین میرود.
onDestroy() این متد برای پاکسازی کامل وضعیت فرگمنت اجرا میشود اما تضمین نمیشود که توسط پلتفرم اندروید صدا زده شود .
در ادامه تعدادی گام ساده برای ایجاد قطعات، ارائه شده است.
در ادامه لیست متدهای مهمی که شما می توانید در کلاس fragment خود، آنها را override کنید، ارائه شده است:
onCreate() : سیستم این متد را در زمان ایجاد قطعه فراخوانی می کند. شما باید در این متد اجزای ضروری قطعه را مقدار دهی اولیه کنید. این اجزا، آنهایی هستند که در زمان متوقف شدن یا از کار افتادن قطعه و شروع به کار مجدد آن، نمی خواهید مقادیر آنها را از دست بدهید.
onCreateView() : سیستم این callback را زمانی فراخوانی می کند که قطعه برای اولین بار واسط کاربری خود را ترسیم می کند. برای ترسیم یک واسط کاربری برای قطعه خود، شما باید یک مولفه View از این متد برگردانید که ریشه (root) صفحه بندی قطعه شماست. در صورتی که قطعه یک واسط کاربری را ایجاد نمی کند، شما می توانید null را برگردانید.
onPause() : سیستم این متد را در زمان بروز اولین نشانه مبنی بر ترک قطعه توسط کاربر، فراخوانی میکند. اینجا معمولا جایی است که تمام مواردی که فراتر از نشست فعلی کاربر باید ذخیره شده و باقی بمانند، اعمال می شوند.
به صورت کلی فرگمنت ها به سه بخش زیر تقسیم می شوند.