记不清楚是做哪个项目,遇到这个问题,然后查看别人的博客,还是有点稀里糊涂的,今天自己做了一个小的demo进行验证。
先把结果写出来:
getHeight()方法确实反应的是view的实际高度,但是前提条件是在代码中调用view的layout()方法对view的布局进行更改,否则getHeight()和getMeasuredHeight()方法获取的值其实是一样的。有部分结论说:当view超出屏幕之后,getHeight()获取的是显示在屏幕上的高度,getMeasuredHeight()获取的不仅仅是超过屏幕内显示的,还包括屏幕外的隐藏部分,今天做的demo验证这个结论不成立。
demo设计:
未超出屏幕xml:
<Button
android:id="@+id/btn_get_in"
android:layout_width="match_parent"
android:layout_height="50dp"
android:text="获取高度" />
<TextView
android:id="@+id/tv_in"
android:layout_width="match_parent"
android:layout_height="300dp"
android:gravity="center"
android:text="测试不超出屏幕" />
主要代码:
btnGetIn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int height = tvIn.getHeight();
int measure