Блочная модель Android - PullRequest
4 голосов
/ 24 июня 2011

Скорее удивлен, что мне не удалось найти подробную информацию о блочной модели Android.Я имею в виду, как отступы, поля, гравитация и т. Д. Все они взаимодействуют друг с другом.

Кроме этой заметки о полях и заполнении на сайте разработчика и этого ТА вопроса там не так много информации.

Что я ищу:

  • Каковы значения по умолчанию для полей, отступов, гравитации и т. д.
  • Может производителиизменить эти значения по умолчанию.Если да, то рекомендуется ли игнорировать эти значения по умолчанию, чтобы приложение выглядело одинаково для разных производителей?
  • Как разрешаются конфликты, особенно между компонентом и его дочерними элементами.
  • Любые различия между версиями Android?

Неужели это так просто, что не стоит более глубокого объяснения в документах?

Спасибо,

Хуан

Ответы [ 2 ]

4 голосов
/ 24 июня 2011

Скорее удивлен, что мне не удалось найти подробную информацию о блочной модели Android.

Обратите внимание, что мало что в вашем вопросе имеет какое-либо отношение к LinearLayout, Android-аналогу "модели коробки", найденной в XUL или Flex.Возможно, у вас есть другое определение «блочной модели», чем я использую.

Каковы значения по умолчанию для полей, отступов, гравитации и т. Д.

0 пикселей дляполе по умолчанию и отступы.Гравитация по умолчанию зависит от виджета / контейнера.

Могут ли производители изменять эти значения по умолчанию.

Технически, да, хотя я не знаю, как это делается на практике.

Как разрешаются конфликты, особенно между компонентом и его дочерними элементами.

Нет возможных конфликтов в полях, заполнении или гравитации.

Есть ли разница между версиями Android?

Не то, что я знаю.

Неужели это так просто, что не стоит более глубокого объяснения в документах?

ИМХО, да.

0 голосов
/ 26 июня 2011

Если вы сравните блочную модель Android с блочной моделью CSS, я пойму, что Android действительно легче понять, и при этом гораздо меньшей сложности.У вас нет таких махинаций, как дополнение, добавляемое к ширине элемента.ИМХО, логика позиционирования (CSS: float / absolute / относительный и т. Д.) Очень хорошо и элегантно инкапсулирована в компонентах макета Android.Хотя некоторые вещи сложно сделать в Android (например, иметь панель инструментов внизу представления и заполнять остальные списком - но это также включает в себя злобные хакерские атаки в CSS), это гораздо более предсказуемо, чем CSS.

Iпредложил бы прочитать все компоненты макета, так как блочная модель проста (поля, отступы, ширина, высота), а большая часть позиционирования и выравнивания зависит от компонента макета (например, «gravity» в LinearLayout, «layout_above»/ under / toLeftOf / toRightOf "в RelativeLayout, ...).

НО: я согласен, что полное руководство (+ хорошие примеры и аналогии) по этой теме поможет новичкам быстрее прийти к согласию с макетами Android, поскольку некоторая углубленная информация доступна только в зависимости от конкретного случая.фрагменты кода (если говорить только о сети, книги, безусловно, работают лучше).

В качестве примечания к блочной модели: одна «особенность», с которой я столкнулся, заключается в том, что 9-patch-drawables , которые устанавливаются в качестве фона для элемента, влияют на заполнение элемента.Если заполнение блока 9-патча не равно 0, заполнение элемента устанавливается соответствующим образом, если не переопределяется.Это действительно однажды укусило меня.

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