旧机宝原本打算采用类似于QQ的侧边划出菜单的首页布局,但是鉴于目前的全面屏手机倾向于用屏幕侧边滑动来代替之前的返回按钮,导致侧边划出菜单的体验不是很好,容易混淆,故而选用下方导航栏的经典页面布局。又因为之前有人评价首页直接可以左右滑动切换页面的方式很贴心,故而选用BottomNavigationView+ViewPager的组合来实现首页的可滑动布局。为了代码更有条理,ViewPager的每一个页面都通过一个Fragment来实现具体业务。效果如下:
第一步:布局
很简单,上面是ViewPager,下面是BottomNavigationView
第二步:为ViewPager设置adapter来填充页面
ViewPager需要通过adapter来填充内容,考虑到ViewPager+Fragment是非常常用的组合,安卓api为我们提供了FragmentPagerAdapter来实现这一点,不过需要进行一些小小的补充来使FragmentPagerAdapter具有更好的普适性,比如通过添加PageTitle可以使得之后在使用tablayout+ViewPager+Fragment的组合的时候避免很多错误。
class MyFragmentPagerAdapter : FragmentPagerAdapter {
private var fragmentArrayList: ArrayList<Fragment> = ArrayList()
private var titles: ArrayList<String> = ArrayList()
constructor(fm: FragmentManager) : super(fm) {
}
constructor(
fm: FragmentManager,
fragments: Array<Fragment>,
titles: Array<String>
) : super(fm) {
this.titles.addAll(Arrays.asList(*titles))
fragmentArrayList.addAll(Arrays.asList(*fragments))
}
constructor(
fm: FragmentManager,
fragments: ArrayList<