Какова полезность третьего аргумента View.resolveSizeAndState()?

Я пошел на официальную страницу документа официальный документ android google, но, похоже, они сделали серьезную опечатку: у нас нет информации о третий аргумент метода. Поэтому мне просто интересно, знает ли кто-нибудь, как определить этот третий аргумент int.

Ответ 1

childMeasuredState - это значение, возвращаемое View.getMeasuredState(). Макет будет агрегировать измеренные состояния своих детей с помощью View.combineMeasuredStates(). Вот пример:

int childState = 0;

for (int i = 0; i < count; i++) {
    final View child = getChildAt(i);
    if (child.getVisibility() != GONE) {
        measureTheChild(child);
        childState = combineMeasuredStates(childState, child.getMeasuredState());
    }
}

В большинстве случаев вы можете просто передать 0 вместо этого. В настоящее время дочернее состояние используется только для того, чтобы определить, был ли измерен вид с меньшим размером, чем он хотел бы иметь. Эта информация, в свою очередь, используется для изменения диалогов при необходимости. В вашем конкретном случае вы не должны беспокоиться об этом.