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"/>