📜  Kotlin 中的 Android ViewPager(1)

📅  最后修改于: 2023-12-03 15:17:09.582000             🧑  作者: Mango

Kotlin中的Android ViewPager

Android ViewPager是Android开发中常用的控件之一,常用于实现向左或向右滑动切换不同视图的功能。在Kotlin中使用ViewPager也非常方便。本文将介绍如何在Kotlin中使用ViewPager。

添加ViewPager到布局文件

首先,我们需要在布局文件中添加ViewPager组件。以下是一个示例布局文件:

<androidx.viewpager.widget.ViewPager
    android:id="@+id/viewPager"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>
创建Fragment

接下来,我们需要创建需要在ViewPager中显示的Fragment。我们可以在Kotlin中使用以下方式创建Fragment:

class MyFragment : Fragment() {

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

    companion object {
        fun newInstance(): MyFragment {
            val args = Bundle()
            val fragment = MyFragment()
            fragment.arguments = args
            return fragment
        }
    }
}

在此示例中,我们定义了一个名为MyFragment的类来表示我们要在ViewPager中显示的Fragment。在onCreateView方法中,我们通过inflate方法将布局文件fragment_my.xml与Fragment相关联。

我们还定义了一个静态的newInstance方法,以便在需要创建新实例时使用。

设置PagerAdapter

PagerAdapter是一个用于管理ViewPager中的Fragment的适配器接口。我们需要为ViewPager设置PagerAdapter以便正确地显示所有Fragment。

在Kotlin中,您可以按照以下方式创建PagerAdapter:

class MyPagerAdapter(fm: FragmentManager, private val fragments: List<Fragment>) : FragmentPagerAdapter(fm) {

    override fun getItem(position: Int): Fragment {
        return fragments[position]
    }

    override fun getCount(): Int {
        return fragments.size
    }
}

在此示例中,我们定义了一个名为MyPagerAdapter的类来表示我们要在ViewPager中使用的PagerAdapter。我们在构造函数中传入FragmentManager和一个Fragment列表。

我们重写了getItem和getCount方法来返回在数组中的指定Fragment以及Fragment数量。

我们现在可以在我们的活动中创建一个MyPagerAdapter对象,并将其作为ViewPager的适配器:

val fragments = listOf(MyFragment.newInstance(), MyFragment.newInstance())
val adapter = MyPagerAdapter(supportFragmentManager, fragments)
viewPager.adapter = adapter

这将创建两个新的MyFragment实例,并将它们添加到一个名为fragments的列表中。我们然后使用此列表创建一个新的MyPagerAdapter对象,并将其设置为我们的ViewPager的适配器。

完成

现在我们可以在我们的应用程序中使用ViewPager了。我们的ViewPager现在将显示两个MyFragment实例,我们可以使用向左或向右滑动的手势在它们之间进行切换。