java - Android:我可以在绘制 View 之前更改 View 的高度吗?

标签 java android android-studio

我想做如下的事情:

rootLayout.getLayoutParams().height = 100;

目前我的“loadData”方法中有这一行。问题是 - 'layoutParams' 似乎为空,直到调用 'loadData' 后的某个时间(但在它明显显示之前)。

是否可以在某个地方放置这条线,其中layoutParams将被实例化,但仍然在 View 第一次显示之前?

最佳答案

    rootLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
                    rootLayout.getViewTreeObserver()
                            .removeOnGlobalLayoutListener(this);
                } else {
                    rootLayout.getViewTreeObserver()
                            .removeGlobalOnLayoutListener(this);
                }
                rootLayout.getLayoutParams().height = 100;
                rootLayout.requestLayout();
            }
        });

关于java - Android:我可以在绘制 View 之前更改 View 的高度吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28763992/

相关文章:

java - 如何将数据从 servlet 传递到 jsp,以便适当的用户可以访问它?

Java8 Lambda 和异常

android - GCMIntentService + 在死线程上向处理程序发送消息

Android - Firebase 身份验证不适用于电子邮件/密码设置

android - 如何在 android 中使用 xml 布局进行绘制

android - 我试图将我的 Android 应用程序连接到 google firebase,但它显示错误

java - 如何绑定(bind)泛型类?

android - 如何在 RecyclerView 中隐藏 View

android - 无法加载类 'com.android.build.gradle.managed.BuildType_Impl

java - 如何从 Java 1.8.0 升级到 Java 11?