Android应用中一个view设置为gone之后他的高度为0了 如何获取它显示时候的高度
时间: 2024-03-20 14:38:46 浏览: 10
如果一个 View 设置为 `GONE` 后,它的高度就会被设置为 0,那么你想要获取它在显示时的高度,可以通过以下方法:
1. 在 `onCreate()` 方法中,使用 `ViewTreeObserver` 监听 View 的绘制,并在绘制完成后获取它的高度。
```java
final View view = findViewById(R.id.your_view_id);
ViewTreeObserver vto = view.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
// 获取 View 显示时的高度
int height = view.getHeight();
// 移除监听器
view.getViewTreeObserver().removeOnGlobalLayoutListener(this);
}
});
```
2. 如果你想在 View 已经显示出来后获取它的高度,可以使用 `View.post()` 方法,在 `Runnable` 中获取高度。
```java
final View view = findViewById(R.id.your_view_id);
view.post(new Runnable() {
@Override
public void run() {
// 获取 View 显示时的高度
int height = view.getHeight();
}
});
```
这两种方法都可以在 View 显示时获取它的高度,不受 View 的可见性影响。