前言
Android 解决Tablayout不显示标题,头部一片空白的问题
如果你也是一样的问题 那么请往下看 可能我们的问题是一样导致的
效果
解决思路
最近在项目中到了 TabLayout+ViewPager+Fragment重用 动态创建的组合
在使用过程中遇到一个问题 TabLayout不显示标题 标题栏未知一片空白
百思不得其解 这个组合我也算经常用 但是这种问题还是第一次遇到
查阅资料后得到的答案 没有能解决问题的
在一遍一遍查看代码时 我看到了自己的Title数组长度
这个细节引起了我的注意
先看看我的Title数据源
private String[] titles = new String[]{"csdn榜", "掘金热榜", "哔哩哔哩热榜",
"抖音视频榜", "吾爱破解热榜",
"知乎热榜", "微博热搜", "微信 ‧ 24h热文榜", "百度 ‧ 实时热点", "今日头条", "网易新闻",
"新浪网 ‧ 热词排行榜", "36氪 ‧ 24小时热榜", "历史上的今天",
"少数派", "V2ex热帖", "全球主机论坛热帖"};
猛然一看 感觉没什么问题 而且我的fragment也都动态创建完了
title数据源 过长
接着上面说 我的想法和思路
这么长的title数组 会不会是因为一屏幕显示不下导致的?而且我的标题 有些文字很长
顺着这个思路 我去翻阅资料 查到
TabLayout有个属性
当TabLayout标签太多时,Tab显示拥挤导致出现省略号显示不全
可以设置
app:tabMode="scrollable"
如何一句话 结果解决了我的问题 我去 这也太坑了吧 是我孤陋寡闻了吗
结尾
解决问题的途中遇到很多答案 亲测 都没有用
比如
for (int i = 0; i < titles.length; i++) {
Objects.requireNonNull(mTabLayout.getTabAt(i)).setText(titles[i]);
}
比如
tablayout.setupWithViewPager(viewPager)方法中setPagerAdapter(),
当我们有一个adapter后,不会添加观察者,然后执行populateFromPagerAdapter(),
此方法中移除了所有tabs : removeAllTabs()
总结
遇到问题时 总是想一帆风顺的解决 但有时一个很小的细节 或者一个不起眼的瞬间
就能找到问题的根源
归根结底 遇到问题 不慌不燥 需要细心排查问题的根源
共勉!2021 继续努力~