Измерение TextView с составной прорисовкой возвращает неправильное значение - PullRequest
0 голосов
/ 08 апреля 2020

Я хочу узнать размер вида перед рукой. Я измеряю его размер таким образом.

public static int[] measureSize(ViewGroup parent, int layoutId)
{
    View view = LayoutInflater.from(parent.getContext()).inflate(layoutId, parent, false);
    final int spec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
    view.measure(spec, spec);
    final int width = view.getMeasuredWidth(); // ? 0, not include compound drawable size and relative padding. WHY
    final int height = view.getMeasuredHeight();
    return new int[]{width, height};
}

Это файл макета:

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:drawableStart="?android:listChoiceIndicatorSingle"
    android:drawablePadding="20dp"/>

Вопрос: измеренная ширина вида не всегда включает составной размер для рисования и соответствующие отступы , Если я не устанавливаю текст, измеренная ширина всегда равна 0. Если задано непустое значение, ширина предназначена только для текста. Почему? Как я могу получить правильный размер?

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...