Android Interview Review

@AndroidSobes Нравится 2 1 500

Популярные вопросы и ответы с собеседований на Android-разработчика.
Канал для Java-разработчиков @JavaSobes
Связаться с нами @SobesAdmin
https://itsobes.ru
Гео и язык канала
Россия, Русский
Категория
Образование


Написать автору
Гео канала
Россия
Язык канала
Русский
Категория
Образование
Добавлен в индекс
18.03.2019 05:12
20 Jun 2019, 18:01 (245 дней назад)
Как реализовать метод View.onMeasure()? (2/3)

Для правильной реализации метода onMeasure() необходимо учитывать значения параметров widthMeasureSpec и heightMeasureSpec, с которыми вызван onMeasure().
Эти параметры имеют тип int, и представляют собой целые числа, в которых с помощью битового сдвига закодировано два значения: размер в пикселях и режим (mode) применения этого размера. Для значений measure specs используется тип int, а не специальный класс, чтобы сэкономить память, используемую при отрисовки UI.

Для получения значений размера и режима используются статические методы MeasureSpec.getSize(measureSpec: Int) и MeasureSpec.getMode(measureSpec: Int) соответственно.

Режим может иметь одно из трех значений:

UNSPECIFIED – у родителя нет предпочтений к размеру view, размер может быть произвольным. Иногда это значение используется лэйаутом при первом проходе для определения желаемых размеров каждой из view. После чего measure() вызывается еще раз, но уже с другим режимом.

EXACTLY – родитель определил и передал точный размер view. View будет иметь этот размер независимо от того, какого размера view хочет быть.

AT_MOST – родитель определил и передал верхнюю границу размера view. View может быть любого размера в пределах этой границы.

#View