آشنایی با کامپوننت ViewPager2 در اندروید

یکی از کامپوننت های قدیمی اندروید که برای ساخت اسلاید ها و تب ها از آن استفاده میکردیم کامپوننت ViewPager بود.

گوگل به تازگی این کامپوننت با ارائه نسخه جدیدی به نام ViewPager2 بروزرسانی کرده و امکانات بسیار زیادی را برای بهینه تر شدن اپلیکیشن ارائه داده است.

آموزش کار با ViewPager2

ViewPager2 یک کامپوننت در برنامه‌نویسی اندروید است که برای پیاده‌سازی و نمایش صفحات مختلف در یک ویوپیج (یک نوع رابط کاربری که به کاربر امکان پیمایش از صفحه به صفحه را می‌دهد) استفاده می‌شود.

این کامپوننت به شما این امکان را می‌دهد که بین صفحات با اثرات انتقالی مختلف جابجا شوید.

ViewPager2 در واقع یک نسخه بهبود یافته از ViewPager است که در نسخه‌های جدیدتر اندروید معرفی شده است.

از مزایای این نسخه بهبود یافته می‌توان به پشتیبانی از تغییرات داده‌های پویا با استفاده از RecyclerView، افزایش کارآیی و بهبود در انیمیشن‌ها، بهترین پشتیبانی از RTL (راست به چپ) و زبان‌های مختلف، و امکان افزودن اثرات انتقالی سفارشی اشاره کرد.

بزرگترین تغییر ViewPager2 نسبت به نسل قبلی خود استفاده از رسایکلر ویو برای پیاده سازی هستش که این کار باعث شده از نظر امکانات و کمتر شدن کد های خود کلاس ViewPager2 تغییرات زیادی پیدا کند.

در این سری مقاله از آموزش برنامه نویسی اندروید به بررسی و پیاده سازی این قابلیت کاربردی اندروید میپردازیم.

مفاهیم SOLID که هر برنامه نویسی باید بداند

خب اما برای استفاده شما اول باید به 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

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *