比如有時候你的TabLayout裡面的條目太多,有一部分會被隐藏掉,你的産品希望在你的條目過多存在看不到的情況下,顯示一個小箭頭或者其他提示資訊提示使用者右邊還是有東西的,這個時候就需要擷取TabLayout的寬度和螢幕寬度比較,才可以去判斷是不是條目已經超出螢幕了。如何擷取TabLayout的真實寬度呢,也就是如何擷取TabLayout的可見寬度以及超出螢幕的寬度?
ViewGroup vg= (ViewGroup) tabLayout.getChildAt();
tabLayoutWidth=;
int size=vg.getChildCount();
View temp;
for (int i=;i<size;i++){
temp=vg.getChildAt(i);
if (temp!=null){
tabLayoutWidth+=temp.getWidth();
}
}
以上代碼可以用,但是當你擷取的時候你會發現得到的tabLayoutWidth=0;這是因為tabLayout還沒有執行繪制沒有layout是以,你得到的是0。可以在tabLayout的addOnLayoutChangeListener進行這些計算操作,但是代碼還需要優化,因為布局layout的次數有點多,但是你隻需要一次成功的計算就可以了。具體怎麼優化就看你自己了。