android view padding,记一次tablayout的tabView偷偷自带padding的问题
這次故事主人翁還是tablayout,在github看官方demo的時(shí)候https://github.com/googlesamples/android-media-controller,效果圖有一個(gè)指示器效果,于是我點(diǎn)進(jìn)去看了代碼,手賤改了一點(diǎn)東西發(fā)現(xiàn)了一點(diǎn)問題
1. 官方demo ViewPage指示器效果圖
實(shí)現(xiàn)原理也很簡單 使用tablayout,核心代碼片段如下
代碼中綁定tablayout和viewpager
final TabLayout pageIndicator = findViewById(R.id.page_indicator);
pageIndicator.setupWithViewPager(mViewPager);
android:id="@+id/page_indicator"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:background="@android:color/transparent"
app:tabBackground="@drawable/tab_indicator"
app:tabGravity="center"
app:tabIndicatorHeight="0dp" />
tabBackground屬性就是指示器單個(gè)圓的樣式,drawable/tab_indicator代碼如下
android:innerRadius="0dp"
android:shape="ring"
android:thickness="3dp"
android:useLevel="false">
android:innerRadius="0dp"
android:shape="ring"
android:thickness="3dp"
android:useLevel="false">
以上代碼就能實(shí)現(xiàn)簡單的位于界面下方居中的viewpager指示器了,如果要選中的圓大一點(diǎn)的效果就
改一下上面
android:innerRadius="0dp"
android:shape="ring"
android:thickness="改成你想要的選中大小"
android:useLevel="false">
我這里改了10dp效果如下
這樣指示器的效果就出來了,很簡單,但是這不是本文的重點(diǎn)。
2. 重點(diǎn)來了,誰限制了我的寬度!
手抖了一下把 選中圓的thickness屬性值改成了100dp結(jié)果就出現(xiàn)了很詫異的一幕了,效果圖如下
然后發(fā)現(xiàn)虛擬機(jī)(限寬為64px)和手機(jī)(限寬為72px)這個(gè)限制寬度不一致,應(yīng)該是和分辨率有關(guān)的,系統(tǒng)設(shè)置的一個(gè)默認(rèn)值。
來fuck源碼看看這是怎么回事!
通過fuck源碼發(fā)現(xiàn)居然自己調(diào)用了padding賦值語句,官方sample代碼里面xml里面都沒有設(shè)置padding啊,繼續(xù)fuck
原來在這設(shè)置的
在TabView構(gòu)造函數(shù)就調(diào)用了setPaddingRelative,而mTabPaddingStart和mTabPaddingEnd僅在TabLayout構(gòu)造方法里面賦值,但是官方sample代碼里面xml里面都沒有設(shè)置mTabPaddingStart和mTabPaddingEnd所有這個(gè)是系統(tǒng)默認(rèn)值。
我們肯定不能讓系統(tǒng)默認(rèn)值干擾我們指示器的 android:thickness的大小,因此建議在TabLayout聲明的xml中加入
app:tabPaddingStart="選中狀態(tài)的android:thickness值/2"
app:tabPaddingEnd="選中狀態(tài)的android:thickness值/2"
當(dāng)然這里選中狀態(tài)的android:thickness值/2只是參考,你可以自己設(shè)置咯,本文結(jié)束
總結(jié)
以上是生活随笔為你收集整理的android view padding,记一次tablayout的tabView偷偷自带padding的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 新闻编辑,超机访问:ZO
- 下一篇: vivo的android是什么手机图片,