Для чего используется фрагмент графического редактора компоновки, предоставляющий раскрывающийся список контекста?

Рядом с раскрывающимся списком темы есть раскрывающееся меню; его текст при наведении читается как «связанное действие или фрагмент, обеспечивающий контекст».

Этот (новый) виджет не описан (или показан) в графическом редакторе макета документация.

Я предполагаю, что это действие или фрагмент, который обычно отображает это представление. Но что редактор макета делает с этой информацией? Можно ли его как-то использовать для предварительного просмотра настроек панели действий?

введите здесь описание изображения


person Jeff Axelrod    schedule 19.09.2012    source источник


Ответы (1)


В блоге инструментов Android это задокументировано следующим образом:

Мы добавили новое меню: Выбор активности. Это позволяет вам выбрать контекст активности для использования в этом макете:

введите здесь описание изображения

Когда вы открываете макет в первый раз, мы пытаемся угадать правильный макет (просматривая ваши классы действий и видя, на какие макеты они ссылаются), но здесь вы можете выбрать другое занятие. Действие, связанное с макетом, используется для выбора темы для рендеринга в случае, когда вы назначили темы действиям в файле манифеста. Вы также можете открыть действие в редакторе Java, выбрав «Открыть имя действия». В будущем мы также будем использовать ассоциацию Activity‹->Layout для управления другими функциями.

Я заметил, что после изменения этого значения к элементу верхнего уровня в XML был добавлен новый атрибут tools:context, что привело меня к этому вопросу, связанному с и ответ. Я также отправил отчет об ошибке в документации с просьбой включаться в документацию.

Этот атрибут в основном представляет собой постоянство для выбора «Связанная активность» над макетом. Во время выполнения макет всегда связан с действием. Конечно, это может быть связано с более чем одним, но по крайней мере с одним. В инструменте нам нужно знать об этом сопоставлении (которое во время выполнения происходит в другом направлении; действие может вызывать setContentView(layout) для отображения макета), чтобы управлять определенными функциями.

Прямо сейчас мы используем его только для одной цели: выбрать правильную тему для макета (поскольку файл манифеста может регистрировать темы для использования в активности, и как только мы узнаем связанную активность с макетом мы можем выбрать правильную тему для отображения макета). В будущем мы будем использовать это для управления дополнительными функциями, такими как отрисовка панели действий (которая связана с активностью), место для добавления обработчиков onClick и т. д.

Причина, по которой это атрибут tools: namespace, заключается в том, что это только отображение времени разработки для использования инструментом. Сам макет может использоваться несколькими действиями/фрагментами и т. д. Мы просто хотим дать вам возможность выбрать привязку во время разработки, чтобы мы могли, например, показать правильную тему; вы можете изменить его в любое время, точно так же, как вы можете изменить наш список и привязки фрагментов и т. д.

(Вот полный набор изменений с более подробной информацией об этом: https://android-review.googlesource.com/#/c/36273/ )

И да, Николай, указанный выше, показывает, как выглядит и работает новый инструмент выбора конфигурации: http://tools.android.com/recent/newconfigchooser

И еще: пространство имен «tools» особенное. Инструмент упаковки Android знает, что игнорирует его, поэтому ни один из этих атрибутов не будет упакован в APK. Мы используем его для дополнительных метаданных в макете. Здесь также хранятся, например, атрибуты для подавления предупреждений о ворсе — как tools:ignore.

person Jeff Axelrod    schedule 19.09.2012