3

遇到此问题时,我正在开发自定义视图。在 XML 中,我将layout_width&设置为layout_height固定值100dp。但是在onMeaure()widthMeasureSpec使用 measureMode的方法中EXACTLY,但是heightMeasureSpec使用 measureMode AT_MOST。更奇怪的是它们具有不同的尺寸值。这是 XML 和相关的代码片段:

代码:

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);

    int widthMeasureMode = MeasureSpec.getMode(widthMeasureSpec);
    int widthMeasureSize = MeasureSpec.getSize(widthMeasureSpec);
    int heightMeasureMode = MeasureSpec.getMode(heightMeasureSpec);
    int heightMeasureSize = MeasureSpec.getSize(heightMeasureSpec);
}

调试模式下的实际值

XML:

<com.my.view
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:background="@color/theme"
    app:contentSizeRatio="50%"
    app:imageSource="@drawable/ic_logo_white_48"/>
4

0 回答 0