可以在 Activity 里面测量 View 的高宽吗?如果可以,那怎么测量 View 的高宽?
可以在 Activity 里面测量 View 的高宽。以下是几种常见的方法:
- onMeasure 方法重写:在自定义 View 时,可以重写
onMeasure
方法来测量 View 的大小。在onMeasure
方法中,通过获取父容器传递过来的测量规格,根据自己的需求计算出合适的 View 大小。例如,根据内容的多少或者固定的尺寸要求来设置 View 的宽高。然后调用setMeasuredDimension
方法来保存测量结果,告知系统 View 的大小已经确定。 - ViewTreeObserver:可以使用
ViewTreeObserver
来监听 View 的布局变化和测量过程。通过addOnGlobalLayoutListener
方法添加一个监听器,当 View 的布局发生变化或者测量完成时,会触发监听器的回调方法。在回调方法中,可以通过getMeasuredWidth
和getMeasuredHeight
方法获取 View 的测量宽高。需要注意的是,在获取到宽高后,为了避免重复触发回调,一般会移除监听器。 - 获取 View 的尺寸参数:在 Activity 中,可以通过
View.getLayoutParams
方法获取 View 的布局