用 TabLayout 实现类似网易选项卡的动态滑动效果
《Android进阶之光》笔记
- 1、需求分析:需要标题和内容
- 2、标题使用TabLayout,通过mTabLayout.addTab(mTabLayout.newTab().setText(titles.get(i)));设置标题
- 3、内容使用Fragment,因为每个标题都有对应的Fragment,所以写了一个ListFragment类,通过ListFragment类添加需要的Fragment
- 4、ListFragment类中只含有一个RecycleView,在onCreateView()方法中 ,将fragment的自定义布局引入进来(只有RecyclerView),在onActivityCreated()方法中,为RecyclerView设置适配器
- 5、RecyclerView设置适配器通过为RecyclerViewAdapter类
- 6、写RecyclerViewAdapter类时,首先考虑到每个RecyclerView都是一条横向布局(view),第一个开始写ViewHolder类,所以ViewHolder内只需要定义final变量View,然后在onCreateViewHolder()方法中,new一个View,此View的布局文件为我们自定义的xml文件,比如内部含有图片和文字,然后再将此View添加进ViewHolder,即View Holder中定义的final变量View.在onBindViewHolder()方法中,根据ViewHolder参数取出View,对取出的View做需要的处理
- 7、每个Fragment的布局也是一样的,所以需要写一个FragmentAdapter类
- 8、每一个Fragment包含标题和内容,因为是Adapter所以用List存储标题(TabLayout)和内容(Fragment),数据都是通过构造函数传递到FragmentAdapter类中,再通过get(potision)取得对应的数据
具体代码参见:
《Android进阶之光》
2.2.4 用 TabLayout 实现类似网易选项卡的动态滑动效果