2012-03-12 4 views
15

ejemplo, al crear esta:¿Por qué el estilo y el diseño no usan el espacio de nombres de 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"/> 

Posible motivo: style y layout se procesan en tiempo de compilación, pero no estoy 100% seguro.

EDIT:

Lo mismo con package en el archivo AndroidManifest.xml.

Respuesta

4

En cuanto a la fuente de LayoutInflater, no parece haber una razón obvia por la que es layout en una etiqueta de inclusión y no android:layout. Supongo que como la etiqueta de inclusión es un caso especial en un diseño, no hay necesidad del prefijo de Android.

La etiqueta include no se procesa en tiempo de compilación sin embargo, de lo contrario no estaría en LayoutInflater Ahora, ¿no;)

En cuanto a style, no sé a ciencia cierta, pero creo que la La razón es que los atributos de espacio de nombres se definen en XML y pasaron como AttributeSet en el constructor View. Sin embargo, el estilo no se pasa en ese conjunto, sino como un parámetro separado. Así que creo que el razonamiento es que style es un parámetro que siempre está ahí, mientras que los atributos prefijados del espacio de nombres son dinámicos y personalizados para un View.

Así que no tengo una respuesta definitiva, pero tal vez ayude;)

Cuestiones relacionadas