TabLayout的一些使用
来源:互联网 发布:计算机恶意软件 编辑:程序博客网 时间:2024/05/29 10:29
setupWithViewPager()的一些坑
在使用setupWithViewPager()进行TabLayout与ViewPager进行绑定时,虽然TabLayout还可以点击,但是原来设置的tab不见了,这可真是奇了怪了,看看TabLayout源码,这个方法到底干了什么。
直接进入根源
setPagerAdapter()的populateFromPagerAdapter()方法: void populateFromPagerAdapter() { removeAllTabs(); if (mPagerAdapter != null) { final int adapterCount = mPagerAdapter.getCount(); for (int i = 0; i < adapterCount; i++) { addTab(newTab().setText(mPagerAdapter.getPageTitle(i)), false); } // Make sure we reflect the currently set ViewPager item if (mViewPager != null && adapterCount > 0) { final int curItem = mViewPager.getCurrentItem(); if (curItem != getSelectedTabPosition() && curItem < getTabCount()) { selectTab(getTabAt(curItem)); } } } }
这里可以看到removeAllTabs()方法的作用就是清除原来设置的tab,这个方法太霸道了,二话不说你原来设置的直接咔嚓掉。它自己创建新的tab,用PagerAdapter.getPageTitle()方法为tab设置上内容。
所以如果你是纯文本的的tab这样绑定ViewPager是比较好的,只需要重写好PagerAdapter的getPageTitle()方法就好,但你是有其他样式的话就需要在setupWithViewPager()后,拿到TabLayout的TabItem重新构造成你想要的样子,如下:
tabLayout.setupWithViewPager(vp);for (int i = 0; i < tabLayout.getTabCount(); i++) { TabLayout.Tab itemTab = tabLayout.getTabAt(i); if (itemTab != null) { itemTab.setText("hahah"); itemTab.setIcon(R.drawable.selector_tab); } }
阅读全文
0 0
- TabLayout的一些使用
- TabLayout的一些特殊用法
- TabLayout的简单使用(TabLayout+Fragment+ViewPager)
- TabLayout的简单使用
- TabLayout的使用
- TabLayout的使用分享
- TabLayout的使用
- 关于TabLayout的使用
- tabLayout 的初步使用
- TabLayout的使用
- TabLayout的使用
- TabLayout的使用
- TabLayout的简单使用
- 25.TabLayout的使用
- TabLayout的使用
- TabLayout的基础使用
- TabLayout的使用
- TabLayout的简单使用
- css+css3
- request.getParameterValues与request.getParameter的区别
- 内心的波动
- Error on execution -version `Qt_5' not found required by
- 带参数表单填报表提交后自动刷新页面
- TabLayout的一些使用
- 《AV Foundation 开发秘籍》读书笔记(三)
- linux如何判断服务器是否被入侵
- docker远程api的使用
- POJ-3259 Wormholes
- UVa
- python
- 机器学习中的高斯过程
- 菜鸟教程中TCP/IP教程Word版