Android将宽度设置为ConstraintLayout.LayoutParams.MATCH_父项给出-1

Android将宽度设置为ConstraintLayout.LayoutParams.MATCH_父项给出-1,android,kotlin,android-constraintlayout,Android,Kotlin,Android Constraintlayout,我在创建弹出窗口时有此代码 val width = ConstraintLayout.LayoutParams.MATCH_PARENT 弹出窗口将显示,并具有所需的全宽。但由于某些原因,width变量被赋值为-1,我使用该变量填充弹出窗口中的其他内容,因此它们得到负宽度,并且不会显示。当弹出窗口达到全宽时,为什么会返回-1 public static final int MATCH_PARENT高度的特殊值或 视图请求的宽度。匹配父项表示视图希望 与其父级一样大,减去父级的填充(如果有)。

我在创建弹出窗口时有此代码

val width = ConstraintLayout.LayoutParams.MATCH_PARENT
弹出窗口将显示,并具有所需的全宽。但由于某些原因,width变量被赋值为-1,我使用该变量填充弹出窗口中的其他内容,因此它们得到负宽度,并且不会显示。当弹出窗口达到全宽时,为什么会返回-1

public static final int MATCH_PARENT高度的特殊值或 视图请求的宽度。匹配父项表示视图希望 与其父级一样大,减去父级的填充(如果有)。 在API级别8中引入

常量值:-1(0xffffffff)()

要获取特定视图的宽度,可以执行以下操作:

视图的宽度(guess
ConstraintLayout
)不是静态的,它取决于视图渲染到的设备。 在kotlin中,您可以使用一种方便的方法在运行时计算视图尺寸:

view.doOnLayout{
它是被测量的宽度
测量高度
}

正确,但请注意,在调用“onLayout”方法后,视图的宽度是可用的
int width = specificView.getWidth();