2012-03-12 31 views
15

Ví dụ, khi tạo này:Tại sao kiểu dáng và bố cục không sử dụng không gian tên 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"/> 

lý do có thể xảy ra: stylelayout được xử lý tại thời gian biên dịch, nhưng tôi không chắc chắn 100%.

EDIT:

Cùng một điều với package trong file AndroidManifest.xml.

Trả lời

4

Nhìn vào nguồn của LayoutInflater, dường như không có lý do rõ ràng nào tại sao nó là layout trong thẻ bao gồm chứ không phải android:layout. Tôi đoán vì thẻ bao gồm là trường hợp đặc biệt trong bố cục không cần tiền tố android.

Các bao gồm thẻ không được xử lý tại thời gian biên dịch tuy nhiên, nếu không nó sẽ không có trong LayoutInflater bây giờ sẽ không nó;)

Đối với style, tôi không biết chắc chắn, nhưng tôi nghĩ rằng lý do là các thuộc tính không gian tên được xác định trong XML và được chuyển thành AttributeSet trong hàm tạo View. Tuy nhiên, kiểu này không được truyền trong tập hợp đó, mà là một tham số riêng biệt. Vì vậy, tôi nghĩ rằng lý do là style là một tham số luôn ở đó, trong khi các không gian tên tiền tố thuộc tính là động và tùy chỉnh cho một View.

Vì vậy, không có câu trả lời rõ ràng nào từ tôi, nhưng có lẽ nó sẽ giúp;)

Các vấn đề liên quan