2. View
Элементарный элемент UI
Прямоугольник
Сам себя рисует
Ловит события
Базовый класс для всех виджетов
Упорядочены в дерево
http://developer.android.com/reference/android/vie
w/View.html
2
3. ViewGroup
Layout
Невидимый сам по себе
LayoutParams
Сказать родительскому ViewGroup, как хотят располагаться
view
Разные сабклассы для разных Layout
Управление жестами
http://developer.android.com/reference/android/vie
w/ViewGroup.html
3
4. Есть у любого View
Focus
Visibility
Paddings
Margins
Listeners
Id
Background
4
6. Measure pass
Проходит по всему дереву от корня
В конце каждая view знает свой размер(ширина и
высота)
measure() может вызываться несколько раз
Метод onMeasure() вызывается из measure()
Должны вызвать setMeasuredDimension(int, int)
Два вспомогательных класса:
LayoutParams
MeasureSpec
UNSPECIFIED
EXACTLY
AT_MOST
6
7. Measure pass - MeasureSpec
Определяет требования родительского view к
дочернему
Состоит из size и mode
UNSPECIFIED
Родителю все равно какого размера ребенок
EXACTLY
Родитель точно указывает, каких он хочет размеров
AT_MOST
Не больше чем указанный размер
7
8. Кастомизация ViewGroup
onLayout (boolean changed, int left, int top, int right,
int bottom)
Вызываем у детей measure с MeasureSpec
Вызываем у детей layout
generateLayoutParams()
checkLayoutParams()
8