tablayout在移動中如何計算子控制項的座標

2021-07-13 21:37:41 字數 811 閱讀 1148

目前做的乙個專案採用的是谷歌支援包的tablayout+viewpage實現頁卡的功能。

這篇文章主要記錄下,在自定義tablayout下,計算子控制項座標時遇到的幾個問題。

1、我們在主layout下,會布局乙個xxtablayout,一般都會設定margin(比如值為50)。並且在**中,將tab填充n個textview作為title。

所以,我們在獲取tablayout下的第乙個子控制項(我們叫它textview1),必然左邊座標值是50(全屏絕對座標)。

2、在這裡第乙個坑出來了,我們設定tablayout為滾動模式tabs.settabmode(tablayout.mode_scrollable);,當textview1移動到只顯示一部分的位置時,我們視覺上看到textview1是緊挨螢幕的左邊距的,感覺textview1左座標應該是0或者-值了吧,其實,不是!!textview1的左座標依然是50,其它正確。究其原因,應該是view本身可以超出自身控制項大小來顯示,但是本身控制項的大小是沒變的。

3、同樣是移動tab的時候,如果部分textview不在螢幕中顯示了,getglobalvisiblerect(rect)獲取到的座標,rect.left或者rect.top會變成0。這個很好理解,!

4、當移動到一定位置後,最右邊的textview座標也變亂了。變成了getglobalvisiblerect獲取的座標+getscrollx(滾動的座標)-margin。

@override

protected void ondraw(canvas canvas)

}

Android中TabLayout的簡單使用

tablayout是design庫提供的控制項,可以方便的使用指示器,使用非常方便,android studio只需要在gradle中引入即可使用 tablayout即可以單獨使用,也可以配合viewpager來使用.今天咱們說一下tablayout配合viewpager如何使用 1.首先匯入依賴 ...

在String中新增移動建構函式和移動賦值運算子

13.50 沒有定義析構函式 include include include include include include using namespace std class string string char c string const string string operator cons...

在移動端如何使用固定定位

絕對定位在沒有找到開啟定位的最近祖先元素,包含塊就是初始包含塊,即乙個視口大小的矩形,只要將這個矩形固定住,就可以用絕對定位代替固定定位 doctype html en protice title viewport content width device width,initial scale 1...