java - 哪些 Android 事件 View 元素可用

标签 java android

我想获取ImageView的宽度和高度(例如)。但是如果我在 onCreate 事件中使用 getWidth/getHeight 方法,我只得到零。 我应该使用哪个事件来获取视觉元素的真实参数?

最佳答案

当调用 onCreate 时, View 尚未绘制,因此无法在此事件中立即获取 View 大小。 将观察者添加到您需要大小的 View 并等待 onGlobalLayout 事件。绘制 View 后会抛出该事件。

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    (...)
    final View = findViewById(R.id.view);
    final ViewTreeObserver observer= view.getViewTreeObserver();
    observer.addOnGlobalLayoutListener(
        new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                Log.d("Log", "Height: " + view.getHeight());
                Log.d("Log", "Width: " + view.getWidth());
            }
        });
}

关于java - 哪些 Android 事件 View 元素可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45918845/

相关文章:

java - 如何获得有关函数返回 null 引起的 NPE 的警告?

java - 从给定的地址名称获取纬度和经度。不是地理编码器

java - 如何将月份缩写为 3 个字符?

java - 在日历提供程序中创建新事件

java - 在 Android 的 Java 中从 Map 的 ArrayList 获取 map

java - 从字符串中提取数字并将它们相加

java - 在服装类的ArrayList上使用Map有什么好处

android - 哪些文件提交到 Android Studio 项目中的版本控制 svn

android - 自动点击提交按钮以及如何通过提交按钮的时间限制?

android - dp(密度无关像素)是物理尺寸吗?