در هر صفحه موجود در اندروید میتوان چند نوع محتوا را نشان داد و با استفاده از ابزارهای مانند BubbleTabBar میتوان آنها را مدیریت کرد. این محتوا ها را میتوان با استفاده از ابزار ViewPager2 نمایش داد و انیمیشن های برای سویپ بین آنها ایجاد کرد. اما بهتر است این موضوع را ابتدا از اول بررسی کنیم و بدانیم چرا باید از این ابزارها استفاده کنیم.
تلفن های هوشمند به دلیل کوچک بودن صفحه نمایش شان, اطلاعات کمتری را میتوانند به کاربران نمایش بدهند. هر صفحه در یک اپ اندرویدی از یک Activity تشکل میشود. دغدغه تمام توسعه دهندگان بخاطر کمبود فضا, استفاده از تمامی ظرفیت ممکنه در یک activity بود. در یک اکتیویتی امکان جابه جای نرم بین صفحات وجود نداشت, به همین دلیل Fragment ها را ایجاد شدند, تا بتوانند محتوا های جداگانه ای در یک اکتیویتی نشان بدهند. بعد از ایجاد صفحاتی با چند نوع محتوا فلسفه تب بندی این محتوا ها شروع شد.
چرا باید چند نوع محتوا در یک صفحه نمایش بدهیم؟
صفحه اصلی هر اپلیکیشن پر ترافیک ترین بخش آن حساب میشود و از این رو یکی از مهمترین صفحات میباشد. در این صفحه باید مسیر جابه جایی بین صفحات اپ را چینش داد و مهمترین اطلاعات را در آن برای کاربران نمایش داد. بخش های مهم زیادی در هر پروژه ای وجود دارد و نمیتوان همه آنها را در یک بخش به کاربران نمایش داد و اصلا این کار اصولی نیز نمیباشد چرا که باعث سنگینی صفحه میشود و هنگام سویپ صفحه ممکن است لگ در روند اجرای ایجاد شود. یا اگر بخواهیم برای هر بخش صفحات کاملا اختصاصی بزنیم, اولویت ها را از بین میبریم و ممکن آن تعاملی که نیاز داشتیم را بدست نیاوریم. در بالا توضیح دادیم که به دلیل کمبود فضای نمایش و بخشبندی محتوا ها ابزارهای وجود دارند که این امکان را ایجاد میکنند تا در یک اکتیویتی بتوان صفحات کامل جدا با محتوای های کاملا متفاوت را نمایش داد.
ابزارهای مدیریت محتواها
برای داشتن محتوای چندگانه در یک اکتیویتی, بهترین راه حل این است که برای هر بخش محتوایی, یک Fragment ایجاد کنیم. فرگمنت شباهت زیادی به اکتیویتی دارد و به همین دلیل میتواند کنترل زیادی برای هر بخش محتوای برای ما ایجاد کند. به راحتی میتوان تعداد زیادی از فرگمنت ها را در هر صفحه استفاده کرد. اگر این تعداد بالا برود دیگر نمیتوان بصورت دستی آنها را مدیریت کرد و نیاز داریم تا از ابزارهایی که برای اینکار وجود دارند استفاده کنیم.
مدیریت فرگمنت ها با ViewPager2
در عادی ترین حالت و بدون استفاده از ابزار خاصی برای نمایش فرگمنت ها باید بصورت دستی اینکار را انجام بدهیم که می بایست ما تمامی مراحل نمایش, جایگزینی و حذف fragmentها را انجام بدهیم. اگر این تعداد کم باشد شاید بتوان براحتی اینکار را انجام داد اما اگر این تعداد بیشتر شود باید زمان زیادی برای مدیریت آنها گذاشت و ممکن است در شرایط مختلف بدرستی کار نکند. البته یک برنامه نویس حرفه ای این را باید مد نظر داشته باشد که باید پروژه ی خود را بطوری توسعه دهد که بعدا بتوان براحتی بخش های زیادی به آن با کمترین زحمت اضافه کرد.
اما در حالت پیشرفته ما میتوانیم از ViewPagerها استفاده کنیم که تمامی مراحل مدیریت این fragmentها را بصورت کامل انجام میدهد. برای استفاده از ViewPager2 تنها نیاز است لیستی از Fragmentها خود ایجاد کنیم و adapter مخصوص ViewPager2 را با آن کانفیگ کنیم.
نام گذاری فرگمنت ها با BubbleTabBar
نمایش دادن فرگمنت ها قسمتی از میباشد و شاید شما نیاز داشته باشید برای هر فرگمنت یک نامی را در نظر بگیرید. یا برای نامگذاری یک بخشی را تنظیم کنید که نام را همراه با یک دکمه برای کاربر نمایش بدهد. یا نیاز داشته باشید که علاوه بر سویپ کردن بتوان از این دکمه ها هم برای جابجایی بین فرگمنت ها استفاده کرد. در این حالت نیاز داریم که خودمان این چنین ابزاری طراحی کنیم یا از Libraryها, یا از ابزارهای خود اندروید برای این کار بهره بگیریم. ابزارهای مختلفی برای اینکار وجود دارد, هر کدام شکل و گرافیک خاص خود را دارند و ممکن است بر اساس نیاز هم بخواهیم آنها را فیلتر کنیم.
یکی از زیبا ترین ابزار هایی که این کار را به راحتی برای ما انجام میدهد, ابزاری بنام BubbleTabBar است. در بالا میتوانید نمونه ای از آن را ببینید که به چه شکلی این نام ها را به کاربر نمایش میدهد. BubbleTabBar دارای انیمیشن خاص خود می باشد و میتوانید برای هر عنوان یک آیکن و رنگ خاصی را نمایش بدهد.
چرا این آموزش
آموزش های مختلفی برای چنین موارد یا ابزارهای وجود دارد, تمامی این آموزش ها, ابزارها را بصورت کاملا سطحی بررسی میکنند. این آموزش که در دسترس شما قرار دارد ابزار BubbleTabBar و ViewPager2 را کامل در سطح پیشرفته و در شرایط مختلف به چالش کشیده است. حتی خود بخش Fragmentها را هم در سطح پیشرفته آموزش داده ایم. بعد از یادگیری مباحث درون این آموزش شما قادر خواهید بود که از تمامی ابزارهای مشابه براحتی در شرایط مختلف استفاده کنید.