OnMeasure получить неправильное значение, когда в XML все ширина и высота фиксированы

Я разрабатывал индивидуальное представление, когда столкнулся с этой проблемой. В 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"/>

0 ответов

Другие вопросы по тегам