利用TabLayout(5.0新技术)+ViewPager+Fragment方法实现书签导航
来源:互联网 发布:深圳善达网络怎么样 编辑:程序博客网 时间:2024/05/17 22:36
“效果展示:
效果:顶部有书签Tablayout,点击书签或滑动Fragment,
通过ViewPager可以切换UI界面。比如网易新闻。
实现书签导航思路:Fragment + ViewPager + TabLayout(5.0新技术) 1.有多少个书签,就创建多少个Fragment。 2.初始化数据: 找出Fagment的对象,存进集合。 3.适配数据:创建一个类,继承FragmentPagerAdapter, 把碎片管理器getSupportFragmentManager(),集合lis传送过去。 在布局添加ViewpPager,再把适配到的数据设置到ViewPager中。 4.加依赖包:design. 作用:可以设置书签导航,可让书签和ViewPager相互监听。 5.找到TabLayout的对象,让tablayout和Viewpager绑定. tabLayout.setupWithViewPager(viewPager); 6.设置书签名称步骤: a .初始化数据,把标签的名字添加到List集合中,把list传送到适配器中 b .在适配器中重写构造方法,再重写一个 getPageTitle方法, 返回一个String title = titleList.get(position);值。 7.如果多个导航标签,可利用滚动模式 :SCROLLABLE
代码展示:
1.MainActivity的代码:
public class Fragment_ViewPager_TabLayout extends AppCompatActivity { private List<Fragment> list; private ViewPager viewPager; private TabLayout tabLayout; private List<String> titleList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.fragment_viewpager_tab); viewPager = (ViewPager) findViewById(R.id.viewpager2); tabLayout = (TabLayout) findViewById(R.id.tablayout); loadData(); BaseFragmentPagerAdapter_TabLayout adapter = new BaseFragmentPagerAdapter_TabLayout(getSupportFragmentManager(), list,titleList); viewPager.setAdapter(adapter); //tablayout和Viewpager绑定在一起 tabLayout.setupWithViewPager(viewPager); //如果多个导航标签,则利用下面的的滚动模式 tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE); } private void loadData() { list = new ArrayList<Fragment>(); Fragment fragmentA = new Fragment_A(); list.add(fragmentA); Fragment fragmentB = new Fragment_B(); list.add(fragmentB); Fragment fragmentC = new Fragment_C(); list.add(fragmentC); Fragment fragmentD = new Fragment_D(); list.add(fragmentD); //.设置书签名称步骤: //1.初始化数据,把书签的名称添加到List集合中,把list传送到适配器中 //2.在适配器中重写构造方法,再重写一个 getPageTitle方法,返回一个String title = titleList.get(position);值。 titleList = new ArrayList<>(); titleList.add("应用"); titleList.add("游戏"); titleList.add("主页"); titleList.add("管理"); }}
2.FragmentPagerAdapter的代码:
public class BaseFragmentPagerAdapter_TabLayout extends FragmentPagerAdapter { private final List<String> titleList; private List<Fragment> list; public BaseFragmentPagerAdapter_TabLayout(FragmentManager fm, List<Fragment> list, List<String> titleList) { super(fm); this.list=list; this.titleList = titleList; } @Override public Fragment getItem(int position) { return list.get(position); } @Override public int getCount() { return list.size(); } //这个方法用于添加表名 @Override public CharSequence getPageTitle(int position) { String title =""; if(titleList!=null){ title = titleList.get(position); } return title; }}
0 0
- 利用TabLayout(5.0新技术)+ViewPager+Fragment方法实现书签导航
- 利用RadioGroup + ViewPager + Fragment实现书签导航
- TabLayout+ViewPager+Fragment实现底部导航
- TabLayout+ViewPager+Fragment实现底部导航
- 利用Fragment + FragmentTabHost实现书签导航
- TabLayout 实现ViewPager+fragment
- TabLayout和ViewPager以及Fragment实现超级简单导航栏
- 手把手教你TabLayout、ViewPager、Fragment实现顶部导航
- Android 导航条效果实现(六) TabLayout+ViewPager+Fragment
- TabLayout+ViewPager+Fragment实现顶部或底部导航栏
- Tablayout+viewpager+fragment实现tab导航以及滑动切换
- Tablayout + ViewPager + fragment 实现底部或顶部导航栏
- Android 用 TabLayout + ViewPager + Fragment 实现顶部、底部导航栏
- 结合TabLayout 、ViewPager 、 Fragment 实现顶部导航栏,最实用!!!
- Android中导航栏实现(Fragment+ViewPager+TabLayout)
- 利用ViewPager+Fragment+actionbar + TabLayout
- 利用TabLayout+ViewPager+Fragment实现可滚动的Tab页面
- xamarin Tablayout+Viewpager+Fragment顶部导航栏
- Bootloader的分区和启动
- <<的重载
- C语言单链表实现19个功能完全详解
- MySQL数据库存储引擎
- C++的类
- 利用TabLayout(5.0新技术)+ViewPager+Fragment方法实现书签导航
- Mysql中LAST_INSERT_ID()的函数使用详解
- scope='request'的bean预加载冲突
- 窥探PTAM之基础知识准备
- win32多国语言编程setlocale
- Objective-C Coding Style Guidelines
- OSG拖拽器简介与示例
- 【SSH网上商城项目实战23】完成在线支付功能
- 版本控制:集中式VS分布式