博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第14天ViewPager案例3:ViewPager+Fragment+TabLayout新闻头部标题导航(*****)
阅读量:3786 次
发布时间:2019-05-22

本文共 2639 字,大约阅读时间需要 8 分钟。

第14天ViewPager案例3:ViewPager+Fragment+TabLayout新闻头部标题导航(*****)

ViewPager

一.效果

在这里插入图片描述

在这里插入图片描述

二.思路:1个ViewPager+5个Fragment+1个FragmentPagerAdapter+TabLayout

1.容器:ViewPager

2.数据:ArrayList<Fragment ArrayList<String 标题
3.适配器:FragmentViewPager
4.TabLayout:需要导入依赖

重写的方法:

(1)getCount():返回数据源的总数量
(2)getItem():
(3)getPageTitle():返回标题

三.代码

(1)导入依赖:implementation 'com.android.support:design:27.0.0’或者

implementation ‘com.android.support:design:28.0.0’
(2)布局activity_main.xml:ViewPager+TabLayout

(3)Java代码:MainActivity.java

public class MainActivity extends AppCompatActivity {
//视图 private ViewPager vp; private TabLayout tb; //数据 private ArrayList
fragment_list=new ArrayList<>(); private ArrayList
title_list=new ArrayList<>();//标题 //适配器 private MyFragmentPagerAdapter myFragmentPagerAdapter; @Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); supportRequestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); initview(); initdata(); initadpater(); //TODO tablayout和viewpager联系在一起 tb.setupWithViewPager(vp); } private void initadpater() {
myFragmentPagerAdapter=new MyFragmentPagerAdapter(getSupportFragmentManager(),fragment_list,title_list); vp.setAdapter(myFragmentPagerAdapter); } private void initdata() {
fragment_list.add(new Fragment1()); fragment_list.add(new Fragment2()); fragment_list.add(new Fragment3()); fragment_list.add(new Fragment4()); title_list.add("我的"); title_list.add("新闻"); title_list.add("最热"); title_list.add("最强"); } private void initview() {
vp=findViewById(R.id.vp); tb=findViewById(R.id.tb); }}

(4)适配器代码:MyFragmentPagerAdapter.java

public class MyFragmentPagerAdapter extends FragmentPagerAdapter {
private ArrayList
fragment_list; private ArrayList
title_list; public MyFragmentPagerAdapter(FragmentManager fm, ArrayList
fragment_list,ArrayList
titile_list) {
super(fm); this.fragment_list=fragment_list; this.title_list=titile_list; } @Override public Fragment getItem(int i) {
return fragment_list.get(i); } @Override public int getCount() {
return fragment_list.size(); } //TODO 返回对应的标题 @Nullable @Override public CharSequence getPageTitle(int position) {
return title_list.get(position); }}

源代码:

转载地址:http://vwktn.baihongyu.com/

你可能感兴趣的文章
最大权闭合子图
查看>>
最小权点覆盖集 与 最大权独立集
查看>>
POJ 2125 Destroying The Graph && Acwing 2325. 有向图破坏(拆点+最小权点覆盖集)
查看>>
计算几何基础知识整理大全 代码模板与证明过程 (直线、向量、多边形、三维计算几何、凸包、半平面交、最小圆覆盖)
查看>>
计算几何之 判断两线段是否相交 代码模板与证明
查看>>
三维计算几何之三维凸包 增量法
查看>>
MySQL变量,存储过程,函数,流程控制详解(小白都能懂哦)
查看>>
9篇小白都能懂系列博客学完MySQL基础
查看>>
还在为Linux入门发愁?
查看>>
如何优雅而又不失内涵的在centos7下安装tree命令
查看>>
彻底掌握Linux文件与目录管理命令?进来看看硬核总结
查看>>
一文搞定Vim/Vi编辑器
查看>>
剑指offer之斐波那契问题(C++/Java双重实现)
查看>>
Linux网络命令
查看>>
一天教会三岁表弟HTML,你值得拥有
查看>>
CSS基础汇总
查看>>
SpringCloud服务注册与发现
查看>>
SpringCloud Stream 消息驱动
查看>>
SpringCloud Sleuth 分布式请求链路
查看>>
SpringCloud Alibaba Nacos 服务注册和配置中心
查看>>