Android ViewPager2 尝鲜

android studio 下载 | 2019-03-08 08:36

最近发现 Google 出了个 ViewPager2 用来代替 ViewPager,本着吃螃蟹的心,结果发现螃蟹果然不是好吃的

首先说下 ViewPager2 最大的亮点,那就是支持垂直滚动,使用起来也非常简单

implementation 'androidx.viewpager2:viewpager2:1.0.0-alpha01'布局

<androidx.viewpager2.widget.ViewPager2    android:id="@+id/viewPager2"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"/><?xml version="1.0" encoding="utf-8"?><TextView xmlns:android=""    android:id="@+id/textView"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:gravity="center"></TextView>代码

class ViewPager2Act : AppCompatActivity() {    private val mList = listOf("1", "2", "3")    override fun onCreate(savedInstanceState: Bundle?) {        super.onCreate(savedInstanceState)        setContentView(R.layout.act_view_pager2)        viewPager2.adapter = object : RecyclerView.Adapter<ViewPager2ViewHolder>() {            override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewPager2ViewHolder {                return ViewPager2ViewHolder(LayoutInflater.from(this@ViewPager2Act).inflate(R.layout.item_view_pager2, parent, false))           }            override fun getItemCount(): Int {                return mList.size           }            override fun onBindViewHolder(holder: ViewPager2ViewHolder, position: Int) {                holder.setData(mList[position])           }       }   }    internal class ViewPager2ViewHolder(view: View) : RecyclerView.ViewHolder(view) {        private val textView: TextView = itemView.findViewById(R.id.textView)        fun setData(data: String) {            textView.text = data       }   }   }ViewPager2 将 ViewPager 的 PagerAdapter 替换成了 RecyclerView.Adapter,所以只要对 RecyclerView 有一定了解的话,写 Adapter 也是很容易的事情

写完了小 Demo ,运行报错

几番折腾,发现是 AndroidX 的问题,又是 Google 搞的新家伙,小研究了下,还是迁移到 AndroidX 比较好

如此这般,迁移到 AndroidX 需要自己手动改的东西还是挺多的,Android Studio 提供的自动迁移只改了部分,代码中的得自己手动修改,所以如果是已经开发了的项目,谨慎迁移

接下来运行,OK

效果就不贴图了,谨以此记录