使用Tablayout出现标题消失的原因:setupWithViewPager()的大坑

使用addTab方法添加标题,调用setupWithViewPager方法绑定ViewPager
tabLayout.addTab(tabLayout.newTab().setText("全部"));
tabLayout.addTab(tabLayout.newTab().setText("Ping2it"));
tabLayout.addTab(tabLayout.newTab().setText("同款"));
allArtPager.setAdapter(new MyFragmentPagerAdapter(getSupportFragmentManager(),fragmentList));allArtPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));allArtPager.setCurrentItem(articleClass);

tabLayout.setupWithViewPager(allArtPager);

这时候添加的标题却不显示了
查看TabLayout封装的setupWithViewPager方法的源码。

removeAllTabs();它竟然把之前添加的title全部被清空,自己又new新的title,所以我们之前添加的标题都不见了。
对于这个问题我有两种解决办法:

方法一:可以执行完setupWithViewPager()后,再添加标题,
       tabLayout.setupWithViewPager(allArtPager);
       tabLayout.getTabAt(0).setText("全部");       tabLayout.getTabAt(1).setText("Ping2it");       tabLayout.getTabAt(2).setText("同款");

方法二:查看源码,TabLayout执行完removeAllTabs后,new新的Tabs,它调用的PagerAdapter中的方法getPageTitle();所以我们可以在PagerAdapter中添加Titles


public class MyFragmentPagerAdapter extends FragmentPagerAdapter {    private ArrayList<Fragment> fragments;    private String[] titles = new String[]{"全部", "Ping2it", "同款", "尖儿货", "场景","BRAND", "态度", "MESSAGE"};    public MyFragmentPagerAdapter(FragmentManager fragmentManager, ArrayList<Fragment> fragments) {        super(fragmentManager);        this.fragments=fragments;    }

@Override    public Fragment getItem(int position) {        return fragments.get(position);    }

@Override    public int getCount() {        return fragments.size();    }

 @Override    public CharSequence getPageTitle(int position) {        return titles[position];    }}
个人感觉还是第二种方法方便实用,Tablayout源码中使用removeAllTabs,又调用PagerAdapter的getPageTitle()方法,本身就是想在PagerAdapter中获取title。

				
时间: 2024-10-27 00:00:19

使用Tablayout出现标题消失的原因:setupWithViewPager()的大坑的相关文章

RNN中的梯度消失爆炸原因

RNN中的梯度消失/爆炸原因 梯度消失/梯度爆炸是深度学习中老生常谈的话题,这篇博客主要是对RNN中的梯度消失/梯度爆炸原因进行公式层面上的直观理解. 首先,上图是RNN的网络结构图,\((x_1, x_2, x_3, -, )\)是输入的序列,\(X_t\)表示时间步为\(t\)时的输入向量.假设我们总共有\(k\)个时间步,用第\(k\)个时间步的输出\(H_k\)作为输出(实际上每个时间步都有输出,这里仅考虑\(H_k\)),用\(E_k\)表示损失. 其中,\(C_{t}=\tanh \

Eclipse调试的时候LogCat自动消失,什么原因?

============问题描述============ LogCat出来的信息,几秒之后就自动消失了. 每次还没来得及看错误信息,它就消失了! 有人说是因为内容太多了的原因, 但是好像不是,我自己的System.out才几条信息,也是出来几秒就自动消失了! 还有一个问题,就是eclipse识别不到真机,必须开着360手机助手/或者是豌豆荚才能识别到真机.有人说可能是360手机助手和豌豆荚的原因,我试着把两个都卸载了,驱动也卸载重装了,还是不行,识别不了,adb.exe我也去网上下载了一个替换掉

网站关键词排名突然消失的原因正在努力侦破

我的个人博客[赵一鸣随笔]刚上线不到20天,今天晚上回来一看,“太原seo”这个关键词排名突然掉的找不到了,原来是排在第14位的,排名来的这么快,掉的也这么快,因为在操作的过程中一直使用利于用户体验的白帽手法,这次关键词排名消失的这么离谱,接下来不要做任何的调整,先来做一个详细的诊断. 1.查看友情链接是否异常 在站长工具里边看了一下友链的情况,因为平时在换友链的时候都是找的相对熟悉的站长,并没有出现什么大的问题,就算是有一两个网站改版了,但是对于太原seo这个词的影响也不会这么大,友链因素排除

TabLayout+ViewPager 标题不显示问题

第一次用TabLayout+ViewPager 组合在布局中写好了三个标题预览没问题而且也设置了 app:tabIndicatorColor="@color/colorAccent" app:tabSelectedTextColor="@color/colorAccent"app:tabTextColor="@color/button_nav_font_default"三个属性都设置,当运行在手机上的时候显示空白刚开始以为是手机问题(华为)换了小

jq点击事件不生效,效果只闪现一次又立马消失的原因?

出现的问题:jq点击事件不生效,点击的时候效果实现但又立马消失,页面重新刷新了一次 可能出现的原因: a标签href属性的原因,虽然点击事件生效,但页面又刷新了一次,所以没有效果,只闪了一次 解决方案:阻止a标签跳转,给a标签的href属性加  javascript:; ,即可 <a href="javascript:;" ></a> 原文地址:https://www.cnblogs.com/6531792-j/p/10778269.html

【原创】JAVA进程突然消失的原因?

引言 值此七夕佳节,烟哥放弃了无数妹纸的邀约,坐在电脑面前码字,就是为了给读者带来新的知识,这是一件伟大的事业! 好吧,实际情况是没人约.为了化解尴尬,我决定卖力写文章,嗯,一定是我过于屌丝! 好了,开始说重点.今天讲的这个问题 JVM进程消失可能有哪些原因? 这个问题也是面试中经常出现的,如下图所示 ps:由于两年多没写crud了,所以忘记mybatis怎么用了,所以上面那个问题,我选择了无视. 那我们就开一篇文章说一下这个问题,其实很easy的,无外乎三种情况. linux的OOM kill

MATLAB GUI程序设计中ListBox空间在运行期间消失的原因及解决方法

在运行期间,ListBox控件突然消失,同时给出如下错误提示: Warning: single-selection listbox control requires that Value be an integer within String rangeControl will not be rendered until all of its parameter values are valid 此错误经常出现在清空List之后.原因在于,List的Value属性指示当前选中的列表项序号,如果超

LSTM缓解梯度消失的原因

\(c_{t}=c_{t-1} \otimes \sigma\left(W_{f} \cdot\left[H_{t-1}, X_{t}\right]\right) \oplus \tanh \left(W_{c} \cdot\left[H_{t-1}, X_{t}\right]\right) \otimes \sigma\left(W_{i} \cdot\left[H_{t-1}, X_{t}\right]\right)\) 反向传播公式: \(\begin{aligned} \frac{\pa

顶部标题TabLayout点击切换Fragment

顶部标题TabLayout点击切换Fragment 加依赖: 在开始之前先调用工具插件:右键工程>Open Module Settings>Dependencies>+>Library Dependency>导人(com.android.support:design:27.0.2)>ok implementation 'com.android.support:design:27.0.2' =========================================