Зачем нужна эта строка в файле макета xml?
xmlns:android="http://schemas.android.com/apk/res/android"
Зачем нужна эта строка в файле макета xml?
xmlns:android="http://schemas.android.com/apk/res/android"
В XML xmlns объявляет пространство имен. Фактически, когда вы делаете:
<LinearLayout android:id>
</LinearLayout>
Вместо вызова android:id
, xml будет использовать http://schemas.android.com/apk/res/android:id, чтобы быть уникальным. Обычно эта страница не существует (это URI, а не URL-адрес), но иногда это URL-адрес, который объясняет используемое пространство имен.
Пространство имен имеет почти то же самое использование, что и имя пакета в приложении Java.
Здесь объяснение.
Унифицированный идентификатор ресурса (URI)
Единый идентификатор ресурса (URI) - это строка символов, которая идентифицирует Интернет-ресурс.
Наиболее распространенным URI является Единый указатель ресурсов (URL), который определяет адрес домена в Интернете. Другой, не очень распространенный тип URI - это имя универсального ресурса (URN).
В наших примерах мы будем использовать только URL-адреса.
xmlns ссылается на пространство имен XML
При использовании префиксов в XML необходимо определить так называемое пространство имен для префикса. Пространство имен определяется атрибутом xmlns в начальном теге элемента. Объявление пространства имен имеет следующий синтаксис. XMLNS:. префикс = "URI"
Примечание: URI пространства имен не используется парсером для поиска информации.
Цель состоит в том, чтобы дать пространству имен уникальное имя. Однако часто компании используют пространство имен как указатель на веб-страницу, содержащую информацию о пространстве имен.
Чтобы понять, почему xmlns:android="http://schemas.android.com/apk/res/android"
должен быть первым в XML файле макета Мы будем понимать компоненты, используя пример
Sample
::
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/container" >
</FrameLayout>
Единый индикатор ресурса (URI):
Пример: http://schemas.android.com/apk/res/android:id
- это URI здесь
xmlns:android
описывает андроид
Пространство имен.textview
с разными
по сравнению с android textview
, пространство имен android помогает
различать наш пользовательский виджет textview
и андроид
textview
виджетXMLNS: Android Определяет пространство имен Android. Этот атрибут всегда должен быть установлен на "http://schemas.android.com/apk/res/android".
обратитесь http://developer.android.com/guide/topics/manifest/manifest-element.html
Это просто объявление пространства имен XML. Мы используем это пространство имен, чтобы указать, что перечисленные ниже атрибуты принадлежат Android. Таким образом, они начинаются с "android:"
Фактически вы можете создавать свои собственные атрибуты. Поэтому, чтобы предотвратить конфликты имен, где 2 атрибута названы одинаковыми, но вести себя по-другому, мы добавляем префикс "android:", чтобы обозначить, что это атрибуты Android.
Таким образом, это объявление пространства имен должно быть включено в открывающий тег корневого представления вашего XML файла.
xmlns: android Это начальный тег для определения пространства имен android в Android. Это стандартное соглашение, определяемое разработчиком google. когда вы используете и размещаете по умолчанию или custome, тогда необходимо использовать это пространство имен.
Определяет пространство имен Android. Этот атрибут всегда должен быть установлен на " http://schemas.android.com/apk/res/android".
должен читать: http://developer.android.com/guide/topics/manifest/manifest-element.html
В XML имена элементов определяются разработчиком. Это часто приводит к конфликту при попытке объединить XML-документы из разных приложений XML. Пользователь или приложение XML не будут знать, как справиться с этими различиями. Конфликты имен в XML можно легко избежать, используя префикс имени. При использовании префиксов в XML должно быть определено пространство имен для префикса. Пространство имен может быть определено атрибутом xmlns в начальном теге элемента. Объявление пространства имен имеет следующий синтаксис. XMLNS:. префикс = "URI"
Чтобы поставить термин laymans:
без xmlns: android = " http://schemas.android.com/apk/res/android" Теги, связанные с Android, не будут распознаны в документе xml нашего макета.
xmlns:android="http://schemas.android.com/apk/res/android"
Это форма xmlns: android = "@+/id". Теперь, чтобы обратиться к нему, мы используем, например,
android:layout_width="wrap_content"
android:text="Hello World!"
Другим xmlns является
xmlns:app="http://schemas.android.com/apk/res-auto"
который находится в форме xmlns: app = "@+/id", и его использование приводится ниже
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
Это объявление пространства имен XML, чтобы указать, что атрибуты, входящие в группу замещения, которые он замедлял, связаны с андроидом.
Я думаю, что это ясно видно из пространства имен, поскольку мы можем создавать наши собственные атрибуты, и если указанный пользователем атрибут совпадает с Android, он избегает конфликта пространства имен.