2012-03-12 1 views
15

예,이를 만들 때 :안드로이드 네임 스페이스를 스타일 및 레이아웃으로 사용하지 않는 이유는 무엇입니까?

<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이 아닌 이유가 분명하지 않은 것으로 보입니다. include 태그는 레이아웃에서 특별한 경우이므로 안드로이드 접두어가 필요하지 않습니다.

태그는 그것이하지 않을 지금 LayoutInflater에 없을 것, 다른 그러나 컴파일시에 처리되지 않습니다 포함) style에 관해서는

, 내가 확실히 모르겠지만, 나는 생각한다 그 이유는 namespace로 지정된 속성이 XML에 정의되어 있고 생성자에 AttributeSet으로 전달 되었기 때문입니다. 그러나 스타일은 해당 집합에서 전달되지 않고 별도의 매개 변수로 전달됩니다. 그래서 그 이유는 접두사가 붙은 네임 스페이스 속성이 동적이고 사용자 정의가 View 인 반면 style은 항상 거기에있는 매개 변수라고 생각합니다.

내게 확실한 답변이 없지만 도움이 될 수도 있습니다.)

관련 문제