要在 ViewPager2 中加载 Fragment,并在 Fragment 中使用 ViewPager2 的左右滑动功能,可以按照以下步骤进行操作:

  1. 首先,在你的项目中添加 ViewPager2 的依赖。在 build.gradle 文件中的 dependencies 中添加以下依赖项:
implementation 'androidx.viewpager2:viewpager2:1.0.0'
  1. 创建一个包含 ViewPager2 的布局文件。例如,可以在 activity_main.xml 中添加以下代码:
<androidx.viewpager2.widget.ViewPager2
    android:id="@+id/viewPager2"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
  1. 创建一个继承自 FragmentPagerAdapter 的适配器类。例如,可以创建一个名为 ViewPagerAdapter 的适配器类:
class ViewPagerAdapter(fragmentManager: FragmentManager, lifecycle: Lifecycle) :
    FragmentStateAdapter(fragmentManager, lifecycle) {

    private val fragmentList = arrayListOf<Fragment>()

    fun addFragment(fragment: Fragment) {
        fragmentList.add(fragment)
    }

    override fun getItemCount(): Int {
        return fragmentList.size
    }

    override fun createFragment(position: Int): Fragment {
        return fragmentList[position]
    }
}
  1. 在你的 Activity 或 Fragment 中,实例化 ViewPager2 并设置适配器。例如,可以在 MainActivity 中添加以下代码:
class MainActivity : AppCompatActivity() {

    private lateinit var viewPager2: ViewPager2
    private lateinit var viewPagerAdapter: ViewPagerAdapter

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        viewPager2 = findViewById(R.id.viewPager2)
        viewPagerAdapter = ViewPagerAdapter(supportFragmentManager, lifecycle)

        // 添加 Fragment 到适配器中
        viewPagerAdapter.addFragment(FirstFragment())
        viewPagerAdapter.addFragment(SecondFragment())
        viewPagerAdapter.addFragment(ThirdFragment())

        viewPager2.adapter = viewPagerAdapter
    }
}
  1. 创建你的 Fragment 类。例如,可以创建一个名为 FirstFragment 的 Fragment 类:
class FirstFragment : Fragment() {

    private lateinit var viewPager2: ViewPager2

    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        return inflater.inflate(R.layout.fragment_first, container, false)
    }

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)

        viewPager2 = requireActivity().findViewById(R.id.viewPager2)

        viewPager2.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() {
            override fun onPageSelected(position: Int) {
                // 当 ViewPager2 滑动到特定页面时执行操作
            }
        })
    }
}

这样,你就可以在 ViewPager2 中加载 Fragment,并在 Fragment 中使用 ViewPager2 的左右滑动功能了。在 Fragment 中,你可以通过 registerOnPageChangeCallback 方法注册一个回调监听器,当 ViewPager2 滑动到特定页面时执行相应操作。

Android Kotlin ViewPager2 中嵌套 Fragment 实现左右滑动

原文地址: https://www.cveoy.top/t/topic/pe71 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录