فرگمنت اندروید چیست؟ فرگمنت در برنامه نویسی اندروید چه کاربردی دارد؟ انواع فرگمنت در اندروید کدام ها هستند؟ چرخه عمر Android Fragment چگونه است؟ مقایسه Activity و fragment برنامه نویسی اندروید چگونه است؟ در این مقاله اندروید می خواهیم به این سوالات پاسخ دهیم. پس برای آموزش fragment در اندروید تا آخر با این مطلب از سایت اموزش برنامه نویسی الکامکو همراه ما باشید.
فرگمنت اندروید چیست ؟ (Android Fragment )
فرگمنت اندروید یکی از مولفه های اصلی در برنامه نویسی اندروید هستند که به شما این امکان را می دهند تا با انعطاف بیشتری اپلیکیشن طراحی کنید. فرگمنت ها جز مستقلی نیستند و باید به یک اکتیویتی متصل شوند. فرگمنت در واقع بخشی از یک activity در اندروید است که امکان توسعه و انجام فعالیت بیشتر را برای یک activity فراهم می کند. بصورت فنی تر فرگمنت یک کلاس جاوا در اندروید است. این کلاس متدهای خاص خودش را دارد که به تعدادی از این مدتها چرخه عمر گفته می شود. با استفاده از این متدها می توانید عملکرد Fragment را در مرحله های مختلف زندگی آن، کنترل کنید. فرگمنت در اندروید می تواند به صورت پویا اضافه و حذف شود تا بهترین رابط کاربری را برای دستگاه بوجود آورد.
فرگمنت ها در برنامه نویسی اندروید چرا بوجود آمدند؟
فرگمنت ها در نسخه ۳٫۰ (API Level 11) به اندروید اضافه شدند. هدف طراحی و معرفی این جزء از برنامه های اندرویدی، توانایی ساخت رابط های کاربری منعطف تر در دستگاه هایی با صفحه های بزرگ، مانند تبلت ها بود. چون در صفحه هایی مانند تبلت ها، فضای زیادی وجود دارد و یک اپلیکیشن باید بتواند از این فضای اضافه، نهایت استفاده را داشته باشد. همچنین این اتفاق باید بدون نیاز به اعمال تغییرات پیچیده و اساسی در سلسه مراتب View اندروید رخ می داد.
به همین دلیل اجزایی طراحی و ساخته شدند که وقتی آنها را به اکتیویتی اضافه می کنید، می توانید صفحه را به چندین قسمت تقسیم کنید که هرکدام عملکرد خاص خودشان را دارند. بدون اینکه نیاز داشته باشید عملکرد های پیچیده ای که در Back Stack اکتیویتی رخ می دهد را کنترل و مدیریت کنید. همه این امکانات امروزه با استفاده از Fragment Support Library در دسترس شما قرار دارند.
انواع فرگمنت اندروید
اساسا فرگمنت به سه مرحله زیر تقسیم می شود:
- فریم تکی fragment : این نوع برای دستگاه های کوچک از جمله موبایل استفاده می شود.
- لیست fragment : فرگمنت لیست خاصی از نمایه ها را دارد که به عنوان list fragment شناخته می شود.
- تراکنش fragment : در این نوع می توانیم یک فرگمنت را به فرگمنت دیگر منتقل کنیم.
همچنین بخوانید: زبان برنامه نویسی جاوا چیست و چه کاربردی دارد؟
همچنین بخوانید: Java با JavaScript فرق می کند!
همچنین بخوانید: انواع نسخه های جاوا، اخرین نسخه زبان جاوا، فهمیدن ورژن جاوا، کدام نسخه جاوا بهتر است؟
مقایسه Activity و fragment برنامه نویسی اندروید
چرا فقط از همان اکتیویتی ها بجای فرگمنت استفاده نکنیم؟
همانطور که در مقاله مربوط به اکتیویتی اندروید گفتیم هر اکتیویتی تمام صفحه اپلیکیشن را در برمی گیرد. با استفاده از اکتیویتی ها، دست شما زیاد برای پیاده سازی رابط های کاربری پیچیده و منعطف باز نیست. به همین دلیل به اجزایی نیاز داریم که بتوانند یک صفحه را به چندین قسمت تقسیم بندی کنند. به اجزایی که بتوانند به صورت صفحه های کوچک از وسط و پایین صفحه ظاهر شوند. یا حتی اجزایی که بتوانند کاری کنند چندین صفحه را در یک صفحه نمایش بدهید.
به همین دلیل است که وجود فرگمنت ها در برنامه نویسی اندروید از اهمیت بسیار زیادی برخوردار هستند و ساختن بسیاری از اپلیکیشن هایی که امروز میبینید، بدون استفاده از Fragment ها امکان پذیر نمی باشد.
فرگمنت و اکتیویتی چه شباهت هایی با هم دارند؟
- هردو دارای یک فایل کلاس و فایل Layout هستند: اکتیویتی و فرگمنت از دو قسمت تشکیل شده اند، یک فایل ظاهری با پسوند xml و یک کلاس جاوا.
- هردو دارای متدهای چرخه عمر هستند: اکتیویتی و Fragment دارای متدهای گوناگونی برای مدیریت چرخه عمر خود هستند.
- هردو میتوانند یک صفحه از اپلیکیشن باشند: هم اکتیویتی و هم Fragment میتوانند یک صفحه کامل از اپلیکیشن را به خود اختصاص بدهند.
- هردو کلاس های اندروید هستند: هردوی آنها دارای فایل های کلاس جاوا هستند که درون آنها هم متد ها و کلاس های دیگری قرار دارد که در زمان اجرا، فراخوانی میشوند.
- هردو ساختاری برای انتقال اطلاعات دارند: هردوی این موارد، از یک ساختار برای انتقال اطلاعات و پیام استفاده میکنند. یکی Intent برای اکتیوتی و دیگری Bundle برای فرگمنت.
فرگمنت و اکتیویتی چه تفاوت هایی با هم دارند؟
- اکتیویتی میزبان فرگمنت است: هر Fragment حتما باید توسط یک اکتیویتی میزبانی شود، و هیچ فرگمنتی نمیتواند بصورت مستقل اجرا شود.
- فرگمنت مانند اکتیویتی مستقل نیست: اکتیویتی ها میتوانند تقریبا بدون نیاز و وابستگی به دیگر کامپوننت های اپلیکیشن، اجرا شوند و شروع به کار کنند. اما فرگمنت ها این قابلیت را ندارند.
- چندین فرگمنت میتواند در صفحه وجود داشته باشد: Fragment ها میتوانند در کنار هم، در یک صفحه از نرم افزار قرار بگیرند.
- برای ارسال اطلاعات به فرگمنت از Bundle استفاده میشود: روند های ارسال پیام در اکتیویتی و فرگمنت با هم تفاوت دارند. در اکتیویتی ها از Intent و برای Fragment ها از Bundle استفاده میشود.
- برای شروع کردن فرگمنت از Fragment Manager استفاده میشود: فرگمنت ها با استفاده از Intent ها شروع میشوند اما Fragment ها برای اینکار نیازمند Fragment Manager هستند.
کاربرد ساخت فرگمنت اندروید؟
فرگمنت ها امکانات زیادی را برای شما در برنامه نویسی اندروید فراهم می کنند که می توانید در هرکدام از سناریو های زیر از Fragment ها استفاده کنید:
- باز شدن یک پنجره کوچک روی صفحه: گاهی اوقات شما نیاز دارید که برای دریافت اطلاعات خاصی از کاربر، نیاز به باز شدن یک پنجره کوچکتر روی صفحه داشته باشید.
- بالا آمدن یک پنجره از پایین صفحه: یکی از کاربرد های فرگمنت ها، باز شدن یک پنجره از پایین صفحه می باشد. از این صفحه ها برای انجام دادن فعالیت های خاصی استفاده میشود.
- داشتن قسمت های مختلف در یک صفحه: طراحی ماژولار یکی از خاصیت هایی است که Fragment ها به اپلیکیشن شما اضافه می کنند.
- باز کردن چند صفحه مختلف در یک اکتیویتی: فرگمنت ها می توانند صفحات مختلفی را درون یک اکتیویتی برای شما پیاده سازی کنند.
- سناریوهایی که در ذهن شما وجود دارد: با استفاده از قابلیت هایی که Fragment ها در اختیار شما قرار میدهند، سناریوهایی که در ذهن خودتان وجود دارد را پیاده سازی کنید.
ساختار فرگمنت در برنامه نویسی اندروید به چه صورت است؟
هر فرگمنت در اندروید نویسی از دو قسمت تشکیل شده است. یعنی برای هر فرگمنت که می خواهید داشته باشید، باید دو فایل جداگانه بسازید:
- فایل ظاهر یا Layout با پسوند xml: هر فرگمنت دارای یک فایل Layout است که در پوشه res در مسیر پروژه قرار میگیرد. این فایل شامل همه المان هایی است که در رابط کاربری، روی صفحه نمایش داده میشود. این فایل با استفاده از ساختار XML نوشته می شود. در این فایل همه المان ها، استایل ها، اندازه ها، فونت ها، جاگذاری ها و بقیه مواردی که در رابط کاربری باید تنظیم شوند، وجود دارند.
- فایل کلاس جاوا با پسوند class: این فایل در اصل مسئول همه عملیات ها، اتفاق ها و عملکرد هایی است که در فرگمنت رخ میدهد. درون این فایل کدهایی به زبان جاوا وجود دارد که عملکرد فرگمنت را مشخص میکنند. یعنی بدون این کلاس جاوا، Fragment فقط یک پوسته خالی است که هیچ واکنشی ندارد و هیچ کاری را نمیتواند انجام بدهد. همه متدها، متدهای چرخه عمر، کلاس ها، ارتباط با سرور ها، ذخیره سازی داده و همه و همه در این کلاس انجام میشوند.
آموزش ساخت فرگمنت اندروید:
برای ساخت فرگمنت اندروید باید دو کار را به طور کلی انجام بدهیم:
- ابتدا باید تصمیم بگیرید که activity شامل چند فرگمنت باشد،برای نمونه دو فرگمنت را برای مدیریت حالت عمودی و افقی دستگاه در نظر می گیریم.
- سپس بر اساس تعداد فرگمنت ها کلاس هایی برای گسترش فرگمنت ها ایجاد می شود.
- هر کلاس فرگمنت دارای متدها و توابع چرخه ی سیکل خود است که می توانید بر اساس نیاز از آن ها استفاده کنید.
- با توجه به هر فرگمنت تعریف شده باید طرح آن را نیز در فایل XML تعریف کنید.
- در نهایت فایل activity را مطابق با تعریف فرگمنت ها تغییر دهید.
فرگمنت در اندروید استودیو
برای درست کردن یک فرگمنت در اندروید استودیو روی app راست کلیک کنید و مسیر زیر را طی کنید:
New -> Fragment -> Fragment (blank)
در آخر یک layout از جنس xml و یک Activity جاوایی درست کنید.
برای بررسی جزئیات به دوره آموزش ساخت برنامه های اندروید مراجعه کنید.
چرخه حیات fragment برنامه نویسی اندروید
فرگمنت یکی از کلاس های جاوا است که می توان از آن چندین بار استفاده کرد. این کلاس دارای متدهایی می باشد که به آنها متدهای چرخه عمر یا Life Cycle Method گفته می شود. این متد ها برای مدیریت و کنترل مراحلی است که یک Fragment در مدت زمانی که وجود دارد (زنده است) استفاده میشود.
یک فرگمنت از زمانی که در صفحه اپلیکیشن نشان داده می شود، تا زمانی که از روی صفحه حذف می شود، مراحل مختلفی را طی می کند. این مراحل با توجه به اتفاقاتی که در گوشی موبایل رخ می دهد، کارهایی که دیگر اپلیکیشن ها انجام می دهند و تعاملاتی که کاربر با دستگاه دارد، می توانند تغییر کنند و به مراحل دیگری تبدیل شوند.
یعنی یک فرگمنت دارای مراحل مختلفی در زمان اجرای خود می باشد. برنامه نویس هم با استفاده از متدهای مدیریت چرخه عمر Fragment، می تواند مشخص کند که در هرکدام از این مرحله ها، فرگمنت چه رفتاری از خودش نشان بدهد. به مجموعه این مراحل Life Cycle گفته میشود.
نکته مهمی که باید بدانید، این است که چرخه عمر یک فرگمنت به چرخه عمر اکتیویتی میزبان آن وابسته است. هرچند این متدها در Fragment و اکتیویتی با یکدیگر تفاوت دارند و تعداد آنها هم متفاوت است، اما متدهای Life Cycle فرگمنت به متدهای چرخه عمر اکتیویتی متصل می شوند و با وابستگی به آنها اجرا می شوند.
همانطور که اکتیویتی ها دارای چرخه حیات هستند، Fragment ها هم دارای چرخه حیات مخصوص به خودشان هستند که با چرخه حیات اکتیویتی اشتراکاتی هم دارد. در تصویر زیر چرخه fragment اندروید را مشاهده می کنید:
همچنین بخوانید » دوره آموزش net core. مهارت محور با ساخت پروژه های حرفه ای از پایه تا فوق پیشرفته
آشنایی با متدهای فرگمنت اندروید
چرخه حیات فرگمنت وضعیت های زیر را دارد:
onAttach() : این متد هنگامی که فرگمنت به اکتیویتی اضافه شده خوانده می شود.
onCreate() : این متد برای مقداردهی در هنگام ساخت فرگمنت فراخوانی می شود.
onCreateView() : این متد زمانی فراخوانده می شود که فرگمنت ایجاد شده و آماده ساخت واسط کاربری (UI) است. در اکتیویتی این وظیفه بر عهده onCreate() بود.
onActivityCreate() : این متد در زمانی فراخوانده می شود که اکتیویتی میزبان فرگمنت اجرا شده است.
onStart() : این متد زمانی فراخوانده می شود که رابط کاربری فرگمنت آماده نمایش است.
onResume() : در این زمان فرگمنت فعال است.
onStop() : این متد در زمان پایان فعالیت فرگمنت اجرا می شود و اگر لازم است چیزی ذخیره شود در این مرحله باید انجام داد.
onDestroyView() : این متد زمانی فراخوانده می شود که UI فرگمنت از اکتیویتی حذف می شود.
onDestroy() : در زمان انتهای حیات فرگمنت این متد اجرا می شود.
onDetach(): زمانی فراخوانده می شود که فرگمنت به طور کامل از اکتیویتی میزبان خود جدا شده است.
مقایسه چرخه عمر اکتیویتی و فرگمنت در اندروید
فرگمنت ها همیشه توسط اکتیویتی ها میزبانی می شوند یعنی حتما باید یک اکتیویتی وجود داشته باشد و به همین دلیل چرخه حیات اکتیویتی بر روی فرگمنت ها نیز تاثیر گذار است. به عنوان مثال اگر اکتیویتی on Pause شود همه فرگمنت های آن اکتیویتی هم on Pause می شود.
حتما باید از فرگنت ها در برنامه نویسی اندروید استفاده کنیم؟
شاید شما به عنوان برنامه نویس اندروید برای ساخت اپلیکیشن اندروید از فرگمنت ها استفاده نمی کنید و میگید ما بدون اون هم کارمون انجام میشه. بله ولی استفاده از فرگمنت ها باعث می شوند برنامه شما تبدیل به یک برنامه اصیل و حرفه ای شود و اگر از فرگمنت در کد نویسی اندروید استفاده کنید مزیت های زیر را برای شما دارند:
- ماژولار بودن: کدهای پیچیدهی هر اکتیویتی بین چند فرگمنت تقسیم میشود و کار سازماندهی و مدیریت آنها را سادهتر میکند.
- قابل استفادهی مجدد بودن: رفتارها و رابط کاربریای که در یک فرگمنت پیادهسازی میشوند را میتوان در چندین اکتیویتی مورد استفاده قرار داد.
- سازگار بودن: میتوان بخشی از رابط کاربری را در یک فرگمنت قرار داد و در اندازهها و حالات مختلف صفحه نمایش، قالب صفحه را تغییر داد.
۸همچنین بخوانید: استفاده از برنامه ساز اندروید یا برنامه نویسی اندروید؟
همچنین بخوانید: فروشگاه ساز اندروید چیست؟ مزایا و معایب اپلیکیشن سازهای فروشگاهی
نتیجه گیری از آموزش fragment اندروید
با استفاده درست از ساختار Fragment در اندروید بسیاری از محدودیت ها در برنامه ها رفع می شود. در این آموزش شما را با فرگمنت در اندروید آشنا کردیم. در صورتیکه تازه برنامه نویسی را شروع کردید و می خواهید حرفه ای کار کنید باید یکسری از آموزش ها را برای ساخت هر اپلیکیشنی بلد باشید تا بتوانید به عنوان یک برنامه نویس اندروید در جایی مشغول شوید یا پروژه بگیرید. توصیه می شود دوره زیر را تهیه کنید. در این دوره آموزش کامل فرگمنت ها (Fragment) در اندروید به شما توضیح داده می شود.
برای یادگیری این مبحث مثال ها و نکته های متعددی را در فایل ویدئویی آورده ایم که با تهیه این درس و مشاهده ویدئو ها به طور کامل به این مبحث مسلط خواهید شد.
به دنبال یادگیری برنامهنویسی اندروید هستید؟
دوره های مرتبط با برنامه نویسی اندروید الکامکو را به شما پیشنهاد می کنیم، به دلایل زیر ↓
- دسترسی همیشگی به فایل های دوره به علاوه پشتیبانی رایگان ۳ ماهه با قابلیت تمدید
- از آنجایی که برنامه اندروید استودیو پلتفرم اصلی گوگل برای طراحی اپلیکیشن اندروید است، آموزش ها در راستای آموزش android studio پیاده سازی شده است.
- این پکیج ها همواره در حال آپدیت هستند و جدیدترین نسخه از فیلم های آموزش برنامه نویسی مرتبط با دوره ها در پنل شما در سایت الکامکو قرار می گیرد.
- آموزش ها به صورت پروژه محور هستند و از هر گونه گزافه گویی خودداری شده است و نیاز به پیش نیاز برنامه نویسی اندروید هم نیست.
- محتوای این پکیج ها از کیفیت بالای تصاویر و صدا برخوردارند.
- از طریق راه های ارتباطی و پشتیبانی ۲۴ ساعته می توانید با ما در ارتباط باشید.
- چند جلسه از فیلم های آموزشی هر دوره به صورت رایگان برای دانلود در دسترس شما قرار دارد که ابتدا از کیفیت کار مطمئن شوید سپس پکیج ها را خریداری نمایید.
- سر فصل های دوره بر اساس سیلابس درسی گوگل طبقه بندی شده اند.
- خیلی از مواردی که سایر آموزشگاه ها به صورت جداگانه می فروشند ما همه را در همین دوره ها به صورت پکیجی برای شما جمع آوری کردیم.
- انجام انواع تمرین ها و پروژه ها در طول دوره ها، ورود آسان شما به بازار کار برنامه نویسی اندروید را فراهم می کنند.
- سورس کد تمامی پروژه های انجام شده در اختیاز شما قرار می گیرد.
- بعد از خرید هر دوره می توانید فورا به دوره ها دسترسی داشته باشید.
بخش های دوره آموزش طراحی برنامه اندروید با جاوا در اندروید استودیو
- بخش اول : مقدمه . آموزش جاوا
- بخش دوم : مفاهیم مقدماتی
- بخش سوم : آموزش کامل ریسایکر ویو (RecyclerView)
- بخش چهارم : مفاهیم کاربردی (قسمت اول)
- بخش پنجم : کار با دیتابیس و انواع فایل و ذخیره سازی در اندروید
- بخش ششم : مفاهیم کاربردی (قسمت دوم)
- بخش هفتم : آموزش کامل PHP
- بخش هشتم : آموزش HTML – CSS – Bootstrap
- بخش نهم : آموزش کامل کار با سرور در اندروید استودیو
- بخش دهم: مفاهیم تکمیلی
- بخش یازدهم : آموزش کامل کار با نقشه
- بخش دوازدهم : پروژه نهایی
- سرفصل های اندروید بصوت کامل
همچنین ببینید» همه دوره های برنامه نویسی اندروید مطابق با آموزش جاوا با اندروید استودیو در راستای ساخت اپ های اندرویدی
مقدمه و معرفی دوره کاتلین
- آشنایی با زبان کاتلین
- قوانین و مفاهیم پایه برای یادگیری زبان کاتلین
- مقایسه جاوا و کاتلین
- آموزش نصب اندروید استودیو
- آموزش اندروید استودیو و شروع کار با آن
- آشنایی اولیه با سیستم عامل Android
- بررسی ایمولیتور (شبیه ساز) و انواع آن
- ساخت ایمولیتور در اندروید استودیو
- شناخت ابزارهای برنامه نویسی Android
- انتخاب ابزار مناسب برنامه نویسی اندروید
- آشنایی با معماری سیستم عامل Android
- آموزش نصب نرم افزار های مورد نیاز جهت برنامه نویسی Android
- شروع طراحی در اندروید استودیو
- اجرای برنامه در شبیه ساز
- آموزش مفاهیم شی گرایی در برنامه نویسی (Object Oriented Programming)
- آموزش کامل برنامه نویسی با زبان کاتلین (kotlin)
- برای مشاهده ادامه سرفصلها روی دوره کلیک کنید
همچنین بخوانید » سایر ثبت نام دوره های کاتلین | لیست کتاب های آموزش زبان Kotlin | kotlin یا flutter | فرق کاتلین با جاوا
پکیج آموزش برنامه نویسی اندروید شامل دوره های جاوا و کاتلین می باشد. همچنین دارای ۷ دوره حرفه ای دیگر برای تبدیل شدن به یک متخصص اندروید کامل می باشد.
بخش های مختلف دوره جامع متخصص اندروید
- بخش اول : آموزش برنامه نویسی اندروید با جاوا
- بخش دوم : آموزش حرفه ای طراحی UI/UX در اندروید
- بخش سوم : آموزش زبان برنامه نویسی کاتلین از صفر تا صد و پروژه محور
- بخش چهارم : اندروید پلاس (آموزش مفاهیم ضروری در اندروید)
- بخش پنجم : آموزش جامع معماری MVP در اندروید با ساخت پروژه اپلیکیشن خبری فول امکانات
- بخش ششم : آموزش جامع معماری MVVM در اندروید با چندین پروژه حرفه ای
- بخش هفتم : آموزش ساخت بازی در اندروید استودیو
- بخش هشتم : آموزش پرداخت درون برنامه کافه بازار
- بخش نهم : آموزش ساخت اپلیکیشن فروشگاهی فول امکانات
بخش های دوره فلاتر
- بخش اول : آموزش برنامه نویسی به زبان Dart
- بخش دوم : آموزش UI/UX – رابط کاربری و تجربه کاربری در فلاتر
- بخش سوم : مفاهیم کاربردی
- بخش چهارم : پیش نیاز بخش سرور
- بخش پنجم : آموزش کامل کار با سرور
- بخش ششم : مفاهیم پیشرفته
- بخش هفتم : مفاهیم تکمیلی
- بخش هشتم : طراحی و ساخت وبسایت فروشگاهی با فلاتر
- بخش نهم : طراحی و ساخت اپلیکیشن فروشگاهی
همچنین بخوانید » همه دوره های فلاتر | تفاوت React Native و Flutter | آینده Flutter چگونه است؟ | لیست کتاب های اموزش flutter | فیلم های آموزش Flutter رایگان | نصب فلاتر | اموزش زبان برنامه نویسی دارت
مقالات مرتبط با آموزش برنامه نویسی اندروید:
- زبان برنامه نویسی جاوا چیست و چه کاربردی دارد؟
- روش های کسب درآمد از برنامه نویسی اندروید
- دانلود فیلم های آموزش برنامه نویسی اندروید رایگان به زبان فارسی
- چگونه با گوشی برنامه نویسی کنیم؟ معرفی اپلیکیشن ها و ابزارها + لینک دانلود
- کدام زبان اندروید بعنوان جدیدترین، بهترین و قوی ترین زبان برنامه نویسی اندروید است؟
- معرفی بهترین کتابخانه های اندروید استودیو که یک برنامه نویس باید بداند! + لینک دانلود
- آموزش و سورس ساخت کوییز آنلاین در اندروید استودیو مرحله به مرحله
- آموزش ساخت اپلیکیشن خرید اینترنتی اندروید همراه با source پروژه
- ایده های جالب برای ساخت اپلیکیشن اندروید یا iOS برای راه اندازی یک کسب و کار نو