android使用Tablayout+viewpager2
关于
公司半新项目开发,最近也在学习kotlin语言,所以项目是java和kotlin混合开发,所以在build文件上使用了apply plugin: 'kotlin-android-extensions'
(这个插件类似ButterKnife,但是extensions会将实例控件id写入HashMap中,以至于每个activity都会维护一个HashMap增加了内存消耗,虽然使用很省事,使用确实是省事我就没把他弃用。。。因为项目开发周期比较短,很多地方有待后期优化)之前看android的开发文档上有推荐使用viewpager2替换viewpager(viewpager2是基于androidx的项目如果你还是android support的话暂时用不了)并且以后也会继续维护跟进。
效果(垂直滑动切换)
gif有点卡是因为压缩的原因导致的,实际效果不卡顿
添加引用与布局文件
首先添加对viewpager2的引用及Tablayout的引用,这里不用android版本自带的tablayout,因为还涉及到一个TabLayoutMediator的使用(viewpager2与tablayout的中介作用,监听viewpager2移动时的OnPageChangeCallback方法以调整选项卡,监听tablayout的OnTabSelectedListener来移动viewpager2)
implementation 'androidx.viewpager2:viewpager2:1.0.0'
implementation 'com.google.android.material:material:1.1.0-beta01'
新增一个布局文件(例如预订页面)fragment_booking.xml
:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:binding="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/tools