Android 使用wrap\u内容的onMeasure采用的参数不是Integer.MIN\u值

Android 使用wrap\u内容的onMeasure采用的参数不是Integer.MIN\u值,android,android-layout,Android,Android Layout,在我的xml中,我为width和height指定了wrap_内容,但是当我重写onMeasure函数时,传递给它的width和height是-2147483348,奇怪的是它是300>Integer.MIN_值,这有什么原因吗?为什么它不是integer.MIN_值,如果里面没有任何东西,为什么它不是0。顺便说一句,这是我正在创建的自定义视图,因此我必须执行我相信的setMeasuredDimension。关于测量的参数不是可用宽度和高度,而是可用宽度和高度的编码以及关于如何使用这些值的标志。您

在我的xml中,我为width和height指定了wrap_内容,但是当我重写onMeasure函数时,传递给它的width和height是-2147483348,奇怪的是它是300>Integer.MIN_值,这有什么原因吗?为什么它不是integer.MIN_值,如果里面没有任何东西,为什么它不是0。顺便说一句,这是我正在创建的自定义视图,因此我必须执行我相信的setMeasuredDimension。

关于测量的参数不是可用宽度和高度,而是可用宽度和高度的编码以及关于如何使用这些值的标志。您可以使用类对其进行解码:


该模式最多为
准确地
、或
未指定的
。请参阅文档,了解如何使用此功能。特别是,如果模式不是
未指定的
,则在调用
setMeasuredDimension
时,不得使用大于该维度大小的值。谢谢,我应该查找文档
protected void onMeasure(int widthSpec, int heightSpec) {
    final int widthMode = MeasureSpec.getMode(widthSpec);
    final int widthSize = MeasureSpec.getSize(widthSpec);
    // etc.
}