Когда вы открываете макет в первый раз, мы пытаемся угадать правильный макет (просматривая ваши классы действий и видя, на какие макеты они ссылаются), но здесь вы можете выбрать другое занятие. Действие, связанное с макетом, используется для выбора темы для рендеринга в случае, когда вы назначили темы действиям в файле манифеста. Вы также можете открыть действие в редакторе 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.