2012-03-12 38 views
15

例如,創建這個時候:爲什麼樣式和佈局使用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"/> 

可能的原因: stylelayout在編譯時得到處理,但我不是100%肯定。

編輯:在AndroidManifest.xml文件,package

同樣的事情。

回答

4

看着LayoutInflater的來源,似乎沒有明顯的原因,爲什麼它在包含標記中爲layout而不是android:layout。我想因爲包含標籤是佈局中的特例,所以不需要android前綴。

Include標記在編譯時處理然而,否則就不會在現在LayoutInflater不會它;)

至於style,我不知道肯定,但我認爲原因在於命名空間屬性在XML中定義,並在View構造函數中作爲AttributeSet傳遞。但是,該樣式不會在該集合中傳遞,而是作爲單獨的參數傳遞。所以我認爲推理是style是一個始終存在的參數,而名稱空間前綴屬性是動態的,並且是View的自定義參數。

所以沒有明確的答案,但也許它有幫助;)

相關問題