Почему стиль и макет не используют пространство имен android? - программирование
Подтвердить что ты не робот

Почему стиль и макет не используют пространство имен android?

Пример при создании:

<TextView
    style="@style/blah"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello" />

<include
    layout="@layout/footer"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"/>

Возможная причина: style и layout обрабатываются во время компиляции, но я не уверен на 100%.

EDIT:

То же самое с package в файле AndroidManifest.xml.

4b9b3361

Ответ 1

Глядя на источник LayoutInflater, кажется, нет очевидной причины, почему он layout в теге include, а не android:layout. Думаю, поскольку тег include является особым случаем в макете, нет необходимости в префиксе android.

Тег include не обрабатывается во время компиляции, иначе он не будет в LayoutInflater теперь не будет;)

Что касается style, я не знаю точно, но я думаю, что причина в том, что атрибуты с именами определены в XML и переданы как AttributeSet в конструкторе View. Однако стиль не передается в этом наборе, а как отдельный параметр. Поэтому я думаю, что аргументация состоит в том, что style - это параметр, который всегда существует, а атрибуты префикса пространства имен являются динамическими и настраиваемыми для View.

Так что нет однозначного ответа от меня, но, возможно, это помогает;)