1. 程式人生 > >View在屬性為wrap_content/match_parent時獲取寬高不準確的解決辦法

View在屬性為wrap_content/match_parent時獲取寬高不準確的解決辦法

View 或ViewGroup在建立時設定寬度高度為match_parent或者wrap_content時,通過getWidth()、getHeight()或者getMeasuredWidth()、getMeasuredHeight()不能獲取到真實的寬高.

正確的方法獲取高度的方法是建立之後呼叫measure方法對View進行測量,然後獲取寬度與高度!

示例:

LinearLayout ll_login_container = (LinearLayout) rootView.findViewById(R.id.ll_login_container);
ll_login_container.measure
(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED); int height = ll_login_container.getMeasuredHeight(); int width = ll_login_container.getMeasuredWidth();

其他如PopupWindow,彈框等也是類似,獲取width/height之前需要先measure!