В чем смысл xmlns: инструментов в макете Android XML?

Например, в:

<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" >
...

Нужно ли его указывать?

+23
источник поделиться
3 ответа

Он определяет пространство имен XML документа. Вы должны поместить его, иначе теги, такие как <RelativeLayout>, не могут быть распознаны парсером.

Пространства имен - это способ для документов XML включать теги от разных поставщиков. С помощью атрибута xmlns вы объявляете, что по умолчанию вы используете XML-элементы, определенные здесь: http://schemas.android.com/apk/res/android (обратите внимание, что эта ссылка (это обсуждение объясняет, почему).

Вы также объявляете дополнительное пространство имен tools, которое не является вашим пространством имен по умолчанию, поэтому при ссылке на элементы или атрибуты, определенные там, вы должны добавить префикс tools, например:

tools:context=".SomeActivity"
+23
источник

Фактически, когда вы делаете:

<RelativeLayout android:id> </RelativeLayout>

Вместо вызова android: id, xml вызовет http://schemas.android.com/apk/res/android:id. Это просто страница, объявляющая все атрибуты и представления, которые вы можете использовать в своем xml.

Вот объяснение. http://www.w3schools.com/xml/xml_namespaces.asp

0
источник

Ниже приведена полезная ссылка с портала Android dev: https://developer.android.com/studio/write/tool-attributes.html

В нем говорится

Android Studio поддерживает множество атрибутов XML в пространстве имен инструментов, которые позволяют использовать функции времени разработки (например, какой макет для отображения в фрагменте) или поведение во время компиляции (например, какой режим сжатия применяется к вашим XML-ресурсам), Когда вы создаете свое приложение, инструменты сборки удаляют эти атрибуты, поэтому не влияет на ваш размер APK или время выполнения.

то есть. пространство имен для инструментов помогает разрабатывать пользовательский интерфейс, а все атрибуты с префиксом "инструменты" будут удалены во время сборки.

0
источник

Посмотрите другие вопросы по меткам или Задайте вопрос