在 onCreate 和 onCreateView 中获取控件宽高的方法.
当 fragment 和 activity再 执行 onCreate 和 onCreateView 的时候,通常是获取不到其中空间的宽度高度等信息.
但有时候我们项目中恰恰需要在 onCreate 和 onCreateView 方法中知道某空间的宽高等信息,有两种方法
方法一
//view.post(runnable)会在 onMeasure 和 onLayout 之后执行
rvCertificate.post(() -> {
rvHeight = rvCertificate.getHeight();
});
refreshContainer.post(() -> {
refreshHeight = refreshContainer.getHeight();
});
方法二
view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
2 @Override
3 public void onGlobalLayout() {
4 mScrollView.post(new Runnable() {
5 public void run() {
6 view.getHeight();
7 }
8 });
9 }
10 });
此方法是当其他 view 的 layout 发生改变时都会被调用

本文介绍了在onCreate和onCreateView方法中获取控件宽高的两种方法:使用view.post(runnable)延迟执行和添加全局布局监听器。这些方法有助于开发者在初始化阶段就能获取到视图的尺寸。
137

被折叠的 条评论
为什么被折叠?



