動態獲取View的高度

2021-10-17 03:18:19 字數 812 閱讀 2661

設定動態復view的高度寬度有以下兩制種方法:  

1. getheight() 方法這個方法必須要在view呼叫了onlayout方法後才能獲得,為了監聽onlayout方法,可以獲得viewtree觀察者上的***來實現,具體**為:

viewtreeobserver viewtreeobserver = bottommenu.getviewtreeobserver();

viewtreeobserver.addongloballayoutlistener(new viewtreeobserver.ongloballayoutlistener()

});

注意:關於removeglobalonlayoutlistener這個方法過時,可以採用removeongloballayoutlistener這個高api level才支援的方法。

2. getmeasuredheight() 方法  由方法的名字就可以得知這個方法必須要在view呼叫了onmeasure方法後才能獲得,有一種快捷的方法可以通知系統主動測量view(呼叫onmeasure),

**如下:bottommenu.measure(0,0); //通知

int bottommenuheight = bottommenu.getheight();

注意:有些人使用measure(0,0)方法時拋空指標異常,這是因為view物件根節點的布局已經實現了onmeasure方法,比如relativelayout重寫了onmeasure方法,可以換成linearlayout這種沒有重寫此方法的布局,當然也可以在外再套一層linearlayout,不過這樣會增加布局層數,降低執行效率,這需要自行權衡。

Android 獲取View繪製前的高度

在android開發過程中,我們可能需要獲取view繪製前的高度或者寬度,一種的可能情形是我們初始化的時候讓某個view是visible gone的,當我們觸發某個事件的時候需要它顯示並且希望有一些動畫效果。這時候我們就要獲取這個view顯示前即繪製前的寬度或者高度。原理很簡單,我們知道,view的...

關於微信小程式獲取view的動態高度填坑

wx.createselectorquery select box boundingclientrect function rect exec 如上,拿到了id為box的view,並獲取到了它的寬 高等屬性,此段 要放在onready函式中 注意 如果這個view的寬高是隨著內容而變化的話,這樣獲取...

獲取view寬高度 獲取自定義元件寬高度

給view設定乙個id class 名,用法和jquery類似,用來獲取指定id相關資訊。test 測試view 把方法寫在onready,是為了再頁面初次渲染完成後,再去獲取,避免不準確或獲取不到的情況。onready function e exec 輸出結果 獲取自定義元件的相關資訊,與獲取vi...