Начиная с недавней новой версии ADT, я заметил этот новый атрибут в файлах XML макета, например:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
tools:context=".MainActivity" />
Для чего используется «инструменты: контекст»?
Откуда он знает точный путь к деятельности, которая там написана? Это смотрит на пакет приложения, внутри манифеста?
Это ограничено классами, которые расширяют Контекст или только действия? Это можно использовать для элементов ListView и т. Д.?
android
xml
android-layout
android-context
android-tools-namespace
разработчик Android
источник
источник
Ответы:
Это действие, которое инструменты редактора пользовательского интерфейса используют для визуализации предварительного просмотра макета. Это задокументировано здесь :
источник
Activity
расширяетсяContext
, так что не уверены, что вы имеете в виду? Возможно, он делает больше, если вам интересно, проверьте исходный код, он доступен. Я не знаю никаких деталей.Этим атрибутом является в основном постоянство для выбора «Связанное действие» над макетом. Во время выполнения макет всегда связан с действием. Конечно, это может быть связано с более чем одним, но по крайней мере с одним. В инструменте нам нужно знать об этом отображении (которое во время выполнения происходит в другом направлении; действие может вызывать setContentView (layout) для отображения макета) для управления определенными функциями.
Прямо сейчас мы используем его только для одной цели: выбор правильной темы для показа для макета (поскольку файл манифеста может регистрировать темы для использования в действии , и как только мы узнаем действие, связанное с макетом, мы можем выбрать правильная тема, чтобы показать для макета). В будущем мы будем использовать это для добавления дополнительных функций, таких как отображение панели действий (связанной с действием), места для добавления обработчиков onClick и т. Д.
Причина, по которой это атрибут tools: namespace, заключается в том, что это только отображение времени разработки для использования инструментом. Сам макет может использоваться несколькими действиями / фрагментами и т. Д. Мы просто хотим дать вам способ выбрать привязку времени разработки, чтобы мы могли, например, показать правильную тему; Вы можете изменить его в любое время, так же, как вы можете изменить наш список, привязки фрагментов и т. д.
(Вот полный набор изменений, который имеет более подробную информацию об этом )
И да, ссылка Николая, указанная выше, показывает, как выглядит и работает новая программа выбора конфигурации.
Еще одна вещь: пространство имен «инструменты» является особенным. Инструмент упаковки Android знает, что его игнорировать, поэтому ни один из этих атрибутов не будет упакован в APK. Мы используем его для дополнительных метаданных в макете. Здесь также хранятся, например, атрибуты для подавления предупреждений lint - как инструменты: игнорировать.
источник
tools:context
значение помещается вTextView
поле. Поскольку это похоже на глобальный вариант использования для применения темы ко всему макету, почему она не помещается в корневой макет?По данным сайта Android Tools Project :
инструменты: контекст
Этот атрибут обычно устанавливается в корневом элементе XML-файла макета и записывает, с каким действием связан макет (во время разработки, поскольку очевидно, что макет может использоваться более чем одним макетом). Это, например, будет использоваться редактором макетов для угадывания темы по умолчанию, поскольку темы определены в манифесте и связаны с действиями, а не с макетами. Вы можете использовать тот же префикс точки, что и в манифестах, чтобы просто указать класс активности без полного имени пакета приложения в качестве префикса.
Используется: редакторами макетов в Studio & Eclipse, Lint
источник
1.Description
tools: context = "activity name"
он не будет упакован вapk
.OnlyADT
Layout Editor в вашем текущем файле Layout, задающем соответствующий контекст рендеринга, покажите ваш текущий Layout при рендеринге контекста, если имя действия соответствует действию, если действие вmanifest
файле установило Theme, тогдаADT
Редактор макетов отобразит ваш текущий макет в соответствии с Theme.Means, что, если вы установитеMainActivity
набор Theme. Свет (другой), затем вы видите в диспетчере визуального макета o фоновый контроль того, что должно быть Темой. Свет выглядит так. Только чтобы показать вам, что вы видите, это то, что вы получаете результаты.Некоторые люди видят, поймут некоторые, некоторые люди видят, также не знают, я добавлю несколько слов объяснения:
2.Sample
3. конкретное описание
1.
tools: context = "activity name"
Это не будет упаковано вapk
(понимание: эквивалент этого комментируется, компилируемый не дает эффекта.)2.
ADT
Только редактор макетов (т. Е. Для вышеуказанного значка с правой стороны симулятора) в текущем файле макета задает соответствующий контекст рендеринга, макет текущего XML-кода при рендеринге контекста является именем действия, соответствующим деятельности, если действие в файле манифеста устанавливает тему, затемADT
редактор макетов будет отображать ваш текущий макет в соответствии с темой. Это означает, что если вы установитеMainActivity
набор темы. Свет может также быть (другим). (Понимаю: вы добавилиtools: context = "activity name"
, макет XML отображает указанное действие, устанавливает тему в файл манифеста, изображенный выше правого симулятора. Стиль темы также будет следовать изменениям, соответствующим теме.)4.summary
Подводя итог, можно сказать, что эти свойства в основном ориентированы на нужные инструменты, состояние отображения времени отладки симулятора и компиляция не работает,
источник
«Tools: context» - это один из атрибутов дизайна, который может облегчить создание макета в XML в среде разработки. Этот атрибут используется, чтобы показать платформе разработки, какой класс действий выбран для реализации макета. Используя «tools: context», Android Studio автоматически выбирает необходимую тему для предварительного просмотра.
Если вы хотите узнать больше о некоторых других атрибутах и полезных инструментах для разработки приложений для Android, взгляните на этот обзор: http://cases.azoft.com/4-must-know-tools-for-effective-android -разработка /
источник
Это лучшее решение: https://developer.android.com/studio/write/tool-attributes
Это атрибуты дизайна, которые мы можем установить в активном контексте в XML как
адаптер:
Вы можете перейти к классу Java при нажатии на отмеченный значок, и инструменты имеют больше функций, таких как
ETX
источник
tools:context=".MainActivity"
Эта строка используется в XML-файле, который указывает, какой исходный файл Java используется для доступа к этому XML-файлу. это означает показать этот предварительный просмотр xml для perticular java-файлов.источник