viewPage布局
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="#FFFFFF"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/total_group" />
创建ViewPageAdapter 适配器
class ViewPagerAdapter2(fm : AppCompatActivity,var fragments : List<Fragment>) : FragmentStateAdapter(fm) {
override fun getItemCount(): Int {
return fragments.size
}
override fun createFragment(position: Int): Fragment {
return fragments.get(position)
}
}
在activity中给viewPager 设置属性
binding.viewPager.adapter = ViewPagerAdapter2(this, fragments)
//offscreenPageLimit的值表示除了当前可见的页面外 缓存的其他页面,这了为了方便直接全部缓存,通常不建议这么做
binding.viewPager.offscreenPageLimit = fragments.size
设置滑动方向,这里是水平方向
binding.viewPager.orientation = ViewPager2.ORIENTATION_HORIZONTAL
给viewPage注册回调函数
binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() {
override fun onPageScrolled(
position: Int,
positionOffset: Float,
positionOffsetPixels: Int
) {
// 当页面滚动时调用
}
override fun onPageSelected(position: Int) {
renewalListView(position) //滑动到的目标页面
}
override fun onPageScrollStateChanged(state: Int) {
// 当页面滚动状态改变时调用(例如,开始滚动,空闲,结束滚动)
}
})