gpt4 book ai didi

android - getLayoutParam 返回宽度为 -1

转载 作者:太空狗 更新时间:2023-10-29 16:30:53 26 4
gpt4 key购买 nike

我正在尝试以编程方式设置布局宽度。

 ViewTreeObserver vtoRecyclerView = mMainLayout.getViewTreeObserver();
vtoRecyclerView.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
mMainLayout.getViewTreeObserver().removeGlobalOnLayoutListener(this);
ViewGroup.LayoutParams lpView = mMainLayout.getLayoutParams();
lpView.width = ViewGroup.LayoutParams.MATCH_PARENT-20;
mMainLayout.requestLayout();

}
});

但是 mMainLayout.getLayoutParams() 返回 width as -1 。所以当我将 width 设置为 match_parent - 20 时,它变成了 -21。我想将 width 设置为 match_parent - 20。这种方法有什么问题。

最佳答案

此处代码的根本问题是因为您将宽度设置为:

lpView.width = ViewGroup.LayoutParams.MATCH_PARENT-20;

而 ViewGroup.LayoutParams.MATCH_PARENT 是一个常量。您可以在 ViewGroup 类上找到常量

public static final int MATCH_PARENT = -1;

这很明显,因为 -1 - 20 是 -21

你可以在这里做的是,你可以把这行改成

lpView.width = mMainLayout.getWidth()-20;

关于android - getLayoutParam 返回宽度为 -1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39220593/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com