آموزش fragment دراندروید
یک قطعه (Fragment) بخشی از واسط کاربری یک اپلیکیشن و یا رفتاری است که شما میتوانید آن را در یک فعالیت قرار دهید. این مولفه امکان طراحی پیمانه ای بیشتر فعالیت ها را فراهم میکند. می توان گفت که یک قطعه نوعی فعالیت فرعی (sub-acitivity) است. در ادامه نکات مهم مربوط به قطعه آورده شده است .
یک قطعه، دارای صفحه بندی خاص خود و همچنین رفتارهای مربوط به خود و callback های چرخه حیات مختص خود است.
شما می توانید، در زمان اجرای یک فعالیت، قطعاتی را به آن اضافه و یا از آن حذف کنید.
شما می توانید برای ایجاد یک واسط کاربری چند بخشی، چندین قطعه را با هم ترکیب کنید.
یک قطعه می تواند در چندین فعالیت مورد استفاده قرار بگیرد.
چرخه حیات قطعه کاملا مرتبط با چرخه حیات فعالیت میزبان آن است. این بدان معناست که، زمانیکه یک فعالیت متوقف میشود، تمام قطعات موجود در فعالیت نیز متوقف می شوند.
یک قطعه می تواند رفتاری را پیاده سازی کند که دارای هیچ مولفه واسط کاربری نیست.
قطعات در نسخهی Honeycomb اندروید به Android API اضافه شده اند که شامل API نسخه 11 است.
شما قطعات را با توسعه کلاس Fragment ایجاد می کنید و می توانید با معرفی کردن یک قطعه به عنوان یک عنصر ، در فایل صفحه بندی فعالیت، آن را در صفحه بندی فعالیت خود درج کنید.
مثال زیر نشان میدهد که چگونه دو مولفه واسط کاربری که به وسیلهی قطعات تعریف شده اند، می توانند در طراحی برای یک تبلت با هم ترکیب شوند ولی در طراحی برای یک گوشی از هم جدا شوند.
اپلیکیشن در زمان اجرا بر روی دستگاهی با سایز تبلت، می تواند شامل دو قطعه در فعالیت A باشد. با این حال، بر روی صفحه نمایش دستگاهی مانند گوشی، فضای کافی برای هر دو قطعه وجود ندارد. بنابراین فعالیت A، فقط شامل قطعه ای برای نمایش لیست مقاله ها خواهد بود و زمانی که کاربر یک مقاله را انتخاب می کند، فعالیت B آغاز می شود که شامل قطعهی دوم برای خواندن مقاله است.
آموزش اندروید آموزش برنامه نویسی اندروید برنامه نویسی اندروید اندروید استودیو آموزش اندروید استودیو
چرخه حیات قطعه
قطعات اندرویدی دارای چرخه حیات خاص خود هستند که بسیار شبیه به چرخه حیات یک فعالیت اندرویدی است. این بخش، مراحل مختلف این چرخه حیات را به صورت خلاصه بیان می کند.
فاز 1: زمانی که یک قطعه ایجاد میشود، می تواند وضعیت های زیر را داشته باشد .
1
2
3
4
|
onAttach() onCreate() onCreateView() onActivityCreated() |
فاز 2: زمانیکه قطعه قابل مشاهده میشود، می تواند وضعیت های زیر را داشته باشد .
1
2
|
onStart() onResume() |
فاز 3: زمانیکه یک قطعه به مود(حالت) پس زمینه میرود، می تواند وضعیت های زیر را داشته باشد .
1
2
|
onPaused() onStop() |
فاز 4: زمانیکه یک قطعه از بین می رود، می تواند وضعیت های زیر را داشته باشد .
1
2
3
4
5
|
onPaused() onStop() onDestroyView() onDestroy() onDetach() |
چطور از قطعات استفاده کنیم؟
در ادامه تعدادی گام ساده برای ایجاد قطعات، ارائه شده است.
اول از همه، تصمیم بگیرید که در یک فعالیت می خواهید از چند قطعه استفاده کنید. برای مثال فرض کنید که ما می خواهیم از دو قطعه برای مدیریت حالت های افقی و عمودی دستگاه استفاده کنیم.
سپس بر اساس تعداد قطعات، کلاس هایی را ایجاد کنید که کلاس Fragment را توسعه می دهند. کلاس Fragment دارای توابع callback مطرح شده در قسمت بالا است. شما می توانید هر کدام از توابع را بسته به نیاز خود override کنید.
متناظر با هر قطعه، شما باید فایل های صفحه بندی را در فایل XML ایجاد کنید. این فایل ها شامل صفحه بندی مربوط به قطعات تعریف شده هستند.
در نهایت، فایل فعالیت را برای تعریف منطق قطعات جایگزین شده بر مبنای نیاز خود،تغییر دهید.
در ادامه لیست متدهای مهمی که شما می توانید در کلاس fragment خود، آنها را override کنید، ارائه شده است.
onCreate() : سیستم این متد را در زمان ایجاد قطعه فراخوانی می کند. شما باید در این متد اجزای ضروری قطعه را مقدار دهی اولیه کنید. این اجزا، آنهایی هستند که در زمان متوقف شدن یا از کار افتادن قطعه و شروع به کار مجدد آن، نمی خواهید مقادیر آنها را از دست بدهید.
onCreateView() : سیستم این callback را زمانی فراخوانی می کند که قطعه برای اولین بار واسط کاربری خود را ترسیم می کند. برای ترسیم یک واسط کاربری برای قطعه خود، شما باید یک مولفه View از این متد برگردانید که ریشه (root) صفحه بندی قطعه شماست. در صورتی که قطعه یک واسط کاربری را ایجاد نمی کند، شما می توانید null را برگردانید.
onPause() : سیستم این متد را در زمان بروز اولین نشانه مبنی بر ترک قطعه توسط کاربر، فراخوانی میکند. اینجا معمولا جایی است که تمام مواردی که فراتر از نشست فعلی کاربر باید ذخیره شده و باقی بمانند، اعمال می شوند.
مثال:
این مثال، شرح میدهد که شما چگونه می تواند Fragments خود را ایجاد کنید. در اینجا ما دو قطعه را ایجاد می کنیم. یکی از آنها زمانی استفاده می شود که دستگاه در حالت افقی (landscape mode) قرار دارد و دیگری برای زمانیست که دستگاه در حالت عمودی (portrait mode) قرار دارد. مراحل زیر را شبیه به آنچه که ما در مثال Hello World Example انجام دادیم، دنبال کنید.
در ادامه محتوای تغییر یافتهی فایل فعالیت اصلی
src/com.example.mycontentprovider/MainActivity.java ارائه شده است.
<آموزش اندروید آموزش برنامه نویسی اندروید برنامه نویسی اندروید اندروید استودیو آموزش اندروید استودیو