在学习Instagram代码过程中,遇到了一个通过AppBarLayout,TabLayout和ViewPager组合实现滑屏效果的方法,代码比较容易,但只适合这种少量静态页面的Fragments
1. 通过CoordinatorLayout搭建和实现页面效果
activity_appbarlayout_tablayout_viewpager.xml主viewgroup
2. 通过AppBarLayout和TabLayout实现tabs功能
activity_appbarlayout_tablayout_viewpager.xml中的tab布局
通过ViewPager控件实现滑屏功能
activity_appbarlayout_tablayout_viewpager.xml中的viewPager布局
android:layout_below="@id/tabslayout"/> 设置到tabs下面,但要与RelativeLayout布局一起使用,demo中并没有添加RelativeLayout
3. 自定义class:SectionPagerAdapter继承FragmentPagerAdapter并重写方法
- FragmentPagerAdapter将Fragment存入到FragmentManger中,用于用户切换页面使用。
- FragmentPagerAdapter适用于少量静态页面切换。
- 我们的demo中有三个Fragment: camera, home, message
SectionPagerAdapter.java
4. 在主Activity:AppbarLayoutTabLayoutAndViewPager中添加adapter,viewpager和TabLayout
- 实例化SectionPagerAdapter
- 实例化三个Fragment,并添加到adapter中
SectionPagerAdapter
- 通过findViewById关联viewpager控件
- viewpager关联adapter
ViewPager调用
- 通过findViewById关联TabLayout
- Tablayout关联viewpager控件
tabLayout方法调用
- 上述代码都写在AppbarLayoutTabLayoutAndViewPager.java中,并调用方法
AppbarLayoutTabLayoutAndViewPager.java
5. 添加Fragment代码和布局
java代码部分
xml代码部分
6. 效果图片
代码效果











网友评论