'앱'Android XML 네임 스페이스 란 무엇입니까?
다음은 파일 app
에서 본 네임 스페이스 의 예입니다.res/menu/main.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity" >
<item android:id="@+id/action_settings"
android:title="@string/action_settings"
android:orderInCategory="100"
app:showAsAction="never" />
</menu>
app
네임 스페이스 는 어떤 용도로 사용됩니까? "표준"Android XML 네임 스페이스입니까? 서로 다른 두 네임 스페이스 (예 : app:showAsAction
및 android:showAsAction
) 에 동일한 속성에 대해 동일한 값 옵션을 사용할 수 있습니까?
로부터 문서 :android:showAsAction=["ifRoom" | "never" | "withText" | "always" | "collapseActionView"]
즉, 위 예제의 줄은 속성이 대신에 다른 것을 의미합니까?
android:showAsAction="never"
일종의 "서브 클래 싱"메커니즘 인 것 같지만 app
Google / Android 소스에서 네임 스페이스 에 대한 실제 문서를 찾을 수없는 것 같습니다 .
app
네임 스페이스는 도서관에 국한되지이지만 여부를 효과적으로 속성 정의에 대해 하나의 글로벌 네임 스페이스를 만드는 가져올 코드 또는 라이브러리가 앱에 정의 된 모든 속성에 사용됩니다 - 즉, 안드로이드 시스템에 의해 정의되지 않은 속성 .
이 경우 appcompat-v7
라이브러리는 android:
네임 스페이스를 미러링하는 사용자 정의 속성을 사용 하여 이전 버전의 Android를 지원합니다 (예 : android:showAsAction
API11에서만 추가되었지만 app:showAsAction
(응용 프로그램의 일부로 제공됨)는 앱이 수행하는 모든 API 레벨에서 작동 함). (가) 사용하여 android:showAsAction
그 속성이 정의되어 있지 않은 경우 API 수준에서 작동하지 않을 것입니다.
이 링크에서 설명을 얻을 수 있습니다
네임 스페이스 선언 XML 네임 스페이스는 예약 된 XML 속성 xmlns 또는 xmlns : prefix를 사용하여 선언되며 값은 유효한 네임 스페이스 이름이어야합니다.
예를 들어 다음 선언은 "xhtml :"접두사를 XHTML 네임 스페이스에 매핑합니다.
xmlns : xhtml = "http://www.w3.org/1999/xhtml"
접두사 "xhtml :"로 시작하는 이름을 가진 모든 요소 또는 속성은 XHTML 네임 스페이스에있는 것으로 간주됩니다 (조상 또는 위의 네임 스페이스 선언이있는 경우).
기본 네임 스페이스를 선언 할 수도 있습니다. 예를 들면 다음과 같습니다.
xmlns = "http://www.w3.org/1999/xhtml"
이 경우 네임 스페이스 접두어가없는 요소는 XHTML 네임 스페이스에있는 것으로 간주됩니다 (조상 또는 위의 기본 네임 스페이스 선언이있는 경우).
범위에 기본 네임 스페이스 선언이 없으면 네임 스페이스 이름에 값이 없습니다. [6] 이 경우 명시적인 네임 스페이스 접두사가없는 요소는 네임 스페이스에없는 것으로 간주됩니다.
속성에는 기본 네임 스페이스가 적용되지 않습니다. 명시적인 네임 스페이스 접두사가없는 속성은 네임 스페이스에없는 것으로 간주됩니다.
참고 URL : https://stackoverflow.com/questions/26692233/what-is-the-app-android-xml-namespace
'programing tip' 카테고리의 다른 글
C #의 다양한 스레딩 동기화 옵션의 차이점은 무엇입니까? (0) | 2020.06.04 |
---|---|
+0과 -0이 동일합니까? (0) | 2020.06.04 |
JavaScript 객체를 빠르게 지우는 방법은 무엇입니까? (0) | 2020.06.04 |
특정 연결에서 다른 인증서를 어떻게 사용합니까? (0) | 2020.06.04 |
HTTPS를 HTTP로 어떻게 리디렉션합니까? (0) | 2020.06.04 |