Android獲取控制項的大小

2021-09-01 21:13:26 字數 1025 閱讀 8163

有時候我們需要獲得控制項的大小,但是在activity的oncreate()生命週期方法中呼叫getwidth()和getheight()方法並不能獲得控制項的寬和高,因為此時我們的介面並未被繪製完成。不過我們卻可以在onwindowfocuschanged(boolean hasfocus)這個方法中獲得控制項的大小。

@override

public void onwindowfocuschanged(boolean hasfocus)

當前視窗的activity在獲得或者失去焦點的時候就會呼叫這個方法,它是這個activity是否對使用者可見的最好標誌。

那麼對於fragment又該怎麼辦呢?fragment並未提供類似onwindowfocuschanged的方法。這時我們就需要用到viewtreeobserver了。

viewtreeobserver observer = layoutindex.getviewtreeobserver();

observer.addonpredrawlistener(new viewtreeobserver.onpredrawlistener()

return true;

}});

顧名思義,這是個對檢視變化進行監聽的觀察者。提供了以下介面,大家可以自己試著測試一下。

inte***ce viewtreeobserver.onpredrawlistener

inte***ce viewtreeobserver.onglobalfocuschangelistener

inte***ce viewtreeobserver.ongloballayoutlistener

inte***ce viewtreeobserver.onscrollchangedlistener

inte***ce viewtreeobserver.ontouchmodechangelistener

Android獲取螢幕大小

我們在做ui開發通常都會有這樣的需求,取得畫面的大小,以下這段 就能幫你在android平台中取得畫面的大小,如下 1.display display getwindowmanager getdefaultdisplay 2.log.i view height display.getheight 3...

動態改變Android控制項大小

一 方法 使用getlayoutparams 和setlayoutparams 方法 二 示例 linearlayout.layoutparams linearparams linearlayout.layoutparams aaa.getlayoutparams 取控制項aaa當前的布局引數 li...

android設定控制項的位置以及獲取控制項的座標

專案中遇到乙個問題,就是印表機打字的效果,然後找到了一位大神的輪子。android實用view系列 textview實現印表機效果 這樣確實實現了印表機打字的效果,但是又出現乙個問題。這個印表機的自定義view事先不能確定整體的高度,這樣,印表機每列印一行,高度就會變大一行,那麼在linear la...