android - 什么时候可以获得 Activity 中的 View 维度?

标签 android

在我的应用中,我需要根据另一个 View 的宽度设置一个 View 的宽度。但是,Activity 的 onCreate() 方法似乎不是这样做的好地方。 View 的宽度通过 getWidth() 返回 0。其他方法 onStart() 和 onResume() 的行为也类似。

我想知道是否有在 View 初始化后调用的 Activity 上的任何方法?或者,有没有其他方法可以实现我的目标。

最佳答案

试试 onGlobalLayoutListener。获取主 Root View 的实例,然后只需使用 addOnGlobalLayoutListener() 方法即可。

当您的 View 已创建并在屏幕上测量时,您将收到回调:

http://developer.android.com/reference/android/view/ViewTreeObserver.OnGlobalLayoutListener.html

关于android - 什么时候可以获得 Activity 中的 View 维度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20667976/

相关文章:

Android 9 AAC 解码器使用 ffmpeg 编码文件输出零样本

java - 通过向广播接收器发送唯一 ID 来取消多个通知

android - 在 Android 应用程序中存储 key 的最佳方式

android - 为什么我的线程不会死掉并导致内存泄漏?

java - 从 fragment 打开的 Activity 立即关闭

Android 9 崩溃 minifyEnabled 和 multiDexEnabled

android - 如何缩短 Android 开发时间

android - 在 DatePicker 中将一周的第一天设置为星期一

android - Android 语音识别将什么格式的语音发送到云端?

android - Android MutableLiveData 与 ObservableList 之间有什么区别?