記一次TabLayout字型太粗解決辦法
最近接到一個需求,需要顯示多個可滾動的分類列表,第一個想到的就是用TabLayout實現。實現是實現了,但是遇到同樣字號,但是tab顯示太粗的問題。先看看是怎樣一個問題。
圖片我們可以看到,上面tab頁的item明顯比下面這個要粗,尤其是英文字母,更加的明顯了,我設定的tab和下面這個TextView是同樣的字號。除此之外,並無其他自定義屬性了。
- 為什麼同樣的字號tab頁的item顯示更粗呢?
我初初認為有可能是TabLayout實現的時候自己把字型給加粗了。帶著這個問題,我去檢視了TabLayout的原始碼,發現其實現也是用TextView實現的,但是全域性搜尋之後發現,並沒有看到起有設定字型style,亦或是typeface的相關程式碼。這就很奇怪了。於是,我將TabLayout的TextApperance Style加了一條屬性textStyle為bold。
ummmmmmm~~~~驚奇的發現。。。
所以說,前面的預設狀態是沒有加粗的,它就是這麼粗!蒼天饒過誰,設計嫌我的太粗了!由於也沒有很仔細的看原始碼,至此也未明瞭tab為什麼會這麼粗。
- 如何解決tab顯示粗問題?
TabLayout是可以自定義tabItem,或許這種方式可以解決這個問題。但是這裡其實就只是顯示文字而已,就無所謂自定義了。所以就放棄了這種方案,另尋方案。
因為涉及到分類,所以列表顯示肯定是要有的,這裡實現的是TabLayout + ViewPager的實現方式,這兩個控制元件搭配在一起可以實現聯動,不需要自己add tab,只需要在viewpager的adapter裡面重寫getPagerTitle方法就可以了。這個方法返回一個CharSequence,這意味著什麼呢?這意味著我們可以在返回tab文字之前進行一點加工。
我們知道,TabLayout裡面的實現其實也是一個TextView,而這裡返回的又是CharSequence,那麼我們是可以給字串設定span的,從而改變顯示的一些屬性。這裡先是構建了一個SpannableString物件,然後對這個物件設定了span,因為前面已經認為不是TabLayout自己對文字進行加粗了,所以這裡就懷疑是字型的原因,所以這裡,設定了TypefaceSpan,來看一看設定後的效果。
變瘦了!不要兩個月!不要兩星期!也不需要兩天!你只需要一行程式碼,就可以變瘦了!看來我們設定了Typeface之後,確實是使得TabLayout顯示看起來是正常的了,但是至於預設狀態下為什麼是較粗的,現在還是不得解,哪位兄dei知道的,麻煩@一下?。
至此,這個問題勉強算是解決了TabLayout預設狀態下字型較粗的問題,這個方案對我來說是最簡單最快的,但是或許自定義TabItem可能實現得更好,如果你跟我一樣的需求,不妨也試試這個方法??
相關文章
- 記錄一次重灌電腦黑屏問題解決辦法與解決思路
- 記一次 Composer update 提示記憶體不夠的解決辦法記憶體
- 記vscode無法啟動解決辦法VSCode
- Android中TabLayout修改字型大小AndroidTabLayout
- win10字型模糊怎麼調整_win10字型模糊解決辦法Win10
- Debian 字型發虛解決記錄
- 記錄一次無法很好解決的問題
- 記一次用油猴無法hook問題解決Hook
- 記一次mysql無法啟動的解決方案MySql
- github慢解決辦法Github
- Namespoace Terminating 解決辦法
- 記錄 warning: CRLF will be replaced LF by in XXX 的解決辦法
- IE、360瀏覽器相容模式下字型漸變色不生效解決辦法瀏覽器模式
- 檔案無法粉碎解決辦法
- 公寓噪音的解決辦法
- height:100%失效解決辦法
- 記一次css字型反爬CSS
- 記一次Razor Pages無法編譯問題及解決編譯
- libigl庫的學習筆記--問題與解決辦法筆記
- mac蘋果電腦忘記密碼的解決辦法Mac蘋果密碼
- -bash: XXX: command not found解決辦法
- cnpm link 報錯解決辦法NPM
- mysql事件關閉解決辦法MySql事件
- IDEA 找不到包解決辦法Idea
- 資料傾斜解決辦法
- SpringBoot 迴圈引用解決辦法Spring Boot
- VScode 更新失敗解決辦法VSCode
- npm install 失敗解決辦法NPM
- github訪問受限解決辦法Github
- 跨域問題解決辦法跨域
- SqlServer鎖表解鎖解決辦法SQLServer
- ModuleNotFoundError: No module named ‘DBUtils‘解決辦法Error
- iPhone忘記訪問限制密碼的解決辦法 密碼忘記了怎麼辦?iPhone密碼
- 字型在chrome瀏覽器下最小隻能設定成12px的解決辦法Chrome瀏覽器
- 無法啟動mysql服務”1067 程式意外終止”解決辦法【簡記】MySql
- win10任務檢視記錄無法刪除的解決辦法Win10
- 直播系統app原始碼,TabLayout:自定義字型大小APP原始碼TabLayout自定義字型
- SQL SERVER 資料庫被標記為“可疑”的解決辦法SQLServer資料庫