یکی از کامپوننت های قدیمی اندروید که برای ساخت اسلاید ها و تب ها از آن استفاده میکردیم کامپوننت ViewPager بود.
گوگل به تازگی این کامپوننت با ارائه نسخه جدیدی به نام ViewPager2 بروزرسانی کرده و امکانات بسیار زیادی را برای بهینه تر شدن اپلیکیشن ارائه داده است.
آموزش کار با ViewPager2
ViewPager2
یک کامپوننت در برنامهنویسی اندروید است که برای پیادهسازی و نمایش صفحات مختلف در یک ویوپیج (یک نوع رابط کاربری که به کاربر امکان پیمایش از صفحه به صفحه را میدهد) استفاده میشود.
این کامپوننت به شما این امکان را میدهد که بین صفحات با اثرات انتقالی مختلف جابجا شوید.
ViewPager2
در واقع یک نسخه بهبود یافته از ViewPager
است که در نسخههای جدیدتر اندروید معرفی شده است.
از مزایای این نسخه بهبود یافته میتوان به پشتیبانی از تغییرات دادههای پویا با استفاده از RecyclerView
، افزایش کارآیی و بهبود در انیمیشنها، بهترین پشتیبانی از RTL (راست به چپ) و زبانهای مختلف، و امکان افزودن اثرات انتقالی سفارشی اشاره کرد.
بزرگترین تغییر ViewPager2 نسبت به نسل قبلی خود استفاده از رسایکلر ویو برای پیاده سازی هستش که این کار باعث شده از نظر امکانات و کمتر شدن کد های خود کلاس ViewPager2 تغییرات زیادی پیدا کند.
در این سری مقاله از آموزش برنامه نویسی اندروید به بررسی و پیاده سازی این قابلیت کاربردی اندروید میپردازیم.
خب اما برای استفاده شما اول باید به AndroidX مهاجرت کنید چون ViewPager2 فقط در این کتابخونه و پکیج در دسترس هست.
بهتره که اول نگاهی به امکانات ViewPager2 باهم بیاندازیم.
- پشتیبانی از چینش راست به چپ صفحات RTL که برای اپلیکیشن های ایرانی بسیار کاربرد دارد
- طراحی بر اساس رسایکلر ویو
- پشتیبانی از LayoutManager
- بهبود اطلاع رسانی تغییر اطلاعات
- ایجاد قابلیت اسکرول از طریق برنامه نویسی بصورت دستی
- ایجاد فاصله (مارجین) بین صفحات
- پشتیبانی از Diff Util
Layout manager
این کلاس همان کلاس Layout manager است که در پیاده سازی رسایکلر ویو دقیقا ما استفاده می کنیم و از طریق این قابلیت ما میتونیم وضعیت افقی یا عمودی بودن Viewpager خودمون و تعیین کنیم.
این کا با استفاده از متد setOrientation() به راحتی قابل انجام است.
پیاده سازی ViewPager2
implementation 'androidx.viewpager2:viewpager2:1.0.0-alpha01'
برای استفاده از این کتابخانه خط بالا را در فایل گریدل پروژه خودتون اضافه کنید و منتظر سینک شدن آن بمانید.
بعد از اضافه کردن کتابخانه وارد فایل xml خود شوید و از تگ زیر برای نمایش viewpager2 استفاده کنید.
<androidx.viewpager2.widget.ViewPager2 android:id="@+id/view_pager" android:layout_width="match_parent" android:layout_height="match_parent"/>
حالا که viewpager2 و داخل فایل لایه تعریف کردیم نیاز داریم که کمی اطلاعات به آن اضافه کنیم برای نمایش دادن.
این کار و با ساخت یک کلاس و ارث بری از کلاس RecyclerView.Adapter انجام میدیم. بعد از پیاده سازی کلاس نحوه استفاده از آن به شکل زیر است.
برای پیاده سازی این بخش از زبان کاتلین استفاده میکنیم.
val adapter = WelcomeAdapter() adapter.welcomeItems = listOf(WelcomeItem.WELCOME_ONE, WelcomeItem.WELCOME_TWO, WelcomeItem.WELCOME_THREE) view_pager.adapter = adapter
برای تغییر حالت عمودی و افقی بودن صفحه هم میتونید از دستور زیر استفاده کنید.
view_pager.orientation = ORIENTATION_VERTICAL