تعویض داینامیک فرگمنت ها و مدیریت تراکنش ها
در بخش اول آموزش فرگمنت در اندروید با مبانی و چرخه حیات این کامپوننت کلیدی آشنا شدیم. در این جلسه، به مبحث حیاتی تعویض داینامیک صفحات و ایجاد تراکنش ها از طریق ابزار های قدرتمند FragmentManager و FragmentTransaction میپردازیم.
در برنامه نویسی مدرن جاوا، مدیریت صحیح این تراکنش ها به توسعه دهنده این امکان را میدهد که صفحاتی نظیر تببارها، منوهای کشویی و ساختارهای اسلایدر ViewPager را به شکلی کاملاً پویا بازنویسی و هدایت کند. اجرای این عملیات با معماری درست، پایداری برنامه را حتی در زمان چرخش گوشی (Configuration Change) حفظ میکند.
getSupportFragmentManager() استفاده کنید تا با تمامی نسخه های اندروید سازگاری کامل داشته باشید و از متدهای قدیمی دپریکیت شده اجتناب ورزید.
سه متد کلیدی در FragmentTransaction
برای ایجاد هرگونه تغییر روی فرگمنت های نمایش داده شده، یک تراکنش باز شده و پس از اعمال تغییرات حتماً باید متد commit() فراخوانی شود:
- متد add: فرگمنت جدید را بر روی فرگمنت قبلی سوار میکند بدون اینکه فرگمنت زیرین از حافظه خارج گردد.
- متد replace: فرگمنت قبلی را به طور کامل از کانتینر جدا کرده و فرگمنت جدید را جایگزین آن میکند؛ مناسبترین گزینه برای تعویض تب های اصلی برنامه.
- متد addToBackStack: یکی از مهمترین متدها که تاریخچه تراکنش را در پشته بازگشت ثبت میکند. با این کار، زمانی که کاربر دکمه Back گوشی را لمس میکند، برنامه بسته نمیشود؛ بلکه به فرگمنت قبلی بازمیگردد.
ارسال داده امن میان فرگمنت ها با شیء Bundle
هرگز نباید اطلاعات را از طریق سازنده (Constructor) به فرگمنت منتقل کرد؛ زیرا سیستمعامل در زمان چرخش صفحه فرگمنت را با سازنده پیشفرض بدون آرگومان بازسازی میکند و داده ها از دست میروند. روش استاندارد گوگل، ایجاد یک متد استاتیک با نام newInstance() و انتقال پارامترها از طریق کلاس Bundle به کمک متد setArguments() است.
با پیاده سازی این الگو ها در کنار مفاهیم معماری مدرن مانند الگوی معماری MVVM، ساختار برنامه شما به سطح استانداردهای تجاری روز ارتقا مییابد.
امتیاز و نظرات
هنوز نظری ثبت نشده است. اولین نفر باشید.