記一次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可能實現得更好,如果你跟我一樣的需求,不妨也試試這個方法??
相關文章
- Git|記一次誤提交的解決辦法Git
- 記錄一次重灌電腦黑屏問題解決辦法與解決思路
- 記一次 Composer update 提示記憶體不夠的解決辦法記憶體
- MySQL 忘記口令的解決辦法MySql
- 記vscode無法啟動解決辦法VSCode
- win10字型模糊怎麼調整_win10字型模糊解決辦法Win10
- MySQL 忘記root密碼解決辦法MySql密碼
- 記一次wordpress安裝過程中遇到的問題及解決辦法
- Android中TabLayout修改字型大小AndroidTabLayout
- 在linux字型下的顯示問題及幾種解決辦法Linux
- 記錄一次無法很好解決的問題
- 記一次mysql無法啟動的解決方案MySql
- github慢解決辦法Github
- Grub Rescue解決辦法
- /dev/null解決辦法devNull
- MSBuild Tools解決辦法UI
- .Net記憶體洩露原因及解決辦法記憶體洩露
- UITextField切換secureTextEntry狀態時字型發生改變的解決辦法UI
- IE、360瀏覽器相容模式下字型漸變色不生效解決辦法瀏覽器模式
- 檔案無法粉碎解決辦法
- Debian 字型發虛解決記錄
- OpenStack 的NAT解決辦法
- android ExceptionInInitializerError解決辦法AndroidExceptionError
- Could not find *.apk!解決辦法APK
- man出錯解決辦法
- ARP病毒解決辦法
- 公寓噪音的解決辦法
- 記一次css字型反爬CSS
- Win10更改高分屏高DPI字型還是模糊的兩種解決辦法Win10
- mac蘋果電腦忘記密碼的解決辦法Mac蘋果密碼
- 華為路由器忘記密碼的解決辦法路由器密碼
- 筆記本光碟機不讀盤的解決辦法筆記
- 筆記本螢幕暗的原因與解決辦法筆記
- windows7忘記開機密碼解決辦法Windows密碼
- MySql5.5忘記root密碼的解決辦法MySql密碼
- [分享] CentOS 6.3忘記root密碼的解決辦法CentOS密碼
- mysql中的root密碼忘記的解決辦法MySql密碼
- RHEL-6忘記root密碼的解決辦法密碼