[英]android - get estimated height of a programmatically created view
在其中添加所有視圖后(即何時真正可以測量),如何以編程方式創建RelativeLayout的 高度 ? 我以編程方式創建了應該是該RL子級按鈕的Button,設置其邊距和對齊方式,並將其添加到RL中,以便可以測量RL的高度。 普通的rl.getHeight()返回0。我使用了以下代碼:
rl.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
int rlHeight=rl.getMeasuredHeight();
在Nexus 5(API 23)上一切正常,但是在另一台使用API 17的設備上(我記得是4.2或其他),它會拋出NPE。 該怎么辦?
PS OnGlobalLayoutListener和OnPreDrawListener不好,因為在調用setParams(...)並將RL添加到外部布局之前,需要測量高度。
您可以使用GlobalLayoutListener或OnPreDrawListener在運行時以編程方式查找視圖高度。 請參考此答案以獲取示例: https : //stackoverflow.com/a/6569243/4898635
但是,一定要在身高升高后移開監聽器,否則它將被連續調用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.