Что означает xmlns:tools в Android XML layout?
Например, в:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
...
Я должен поставить это?
4 ответа
Он определяет пространство имен XML документа. Вы должны поставить его, в противном случае теги, как <RelativeLayout>
может быть не распознан парсером.
Пространства имен позволяют XML-документам включать теги разных поставщиков. Используя xmlns
Вы заявляете, что по умолчанию вы используете элементы XML, определенные здесь: http://schemas.android.com/apk/res/android (обратите внимание, что эта ссылка не работает - это обсуждение объясняет почему).
Вы также объявляете дополнительное пространство имен, tools
, которое не является вашим пространством имен по умолчанию, поэтому при обращении к элементам или атрибутам, определенным там, вы должны добавить tools
префикс, например:
tools:context=".SomeActivity"
Ниже приводится полезная ссылка с портала Android для разработчиков: https://developer.android.com/studio/write/tool-attributes.html
Это говорит
Android Studio поддерживает различные атрибуты XML в пространстве имен инструментов, которые включают функции времени разработки (например, какой макет показывать во фрагменте) или поведение во время компиляции (например, какой режим сжатия применяется к вашим ресурсам XML). При сборке приложения инструменты сборки удаляют эти атрибуты, поэтому они не влияют на размер вашего APK или поведение во время выполнения.
то есть пространство имен инструментов помогает проектировать пользовательский интерфейс, и все атрибуты с префиксом "инструменты" будут удалены во время сборки.
На самом деле, когда вы делаете:
<RelativeLayout android:id> </RelativeLayout>
Вместо вызова Android: ID, XML будет называть http://schemas.android.com/apk/res/android:id. Это просто страница, которая объявляет все атрибуты и представления, которые вы можете использовать в своем xml.
Вот объяснение. http://www.w3schools.com/xml/xml_namespaces.asp
В Android этот атрибут используется для определения пространства имен XML для префикса пространства имен «инструменты». Он обычно используется в XML-файлах макета для предоставления дополнительных инструментов и информации, помогающих в процессе разработки. Пространство имен предоставляет атрибуты, которые используются во время проектирования и разработки приложения, но игнорируются или удаляются во время компиляции и выполнения.
Вот пример того, как
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="Hello World!"
android:textColor="@color/black" />
</LinearLayout>
В приведенном выше примере
Используя