활동 레이아웃 : 조각 클래스 : vs android : name 속성
Android 개발자 가이드에서 Fragments 에 대한 문서를 읽었으며 때때로 Fragment 태그 속성 android : name 으로 인스턴스화 할 클래스를 지정 하고 때로는 class : 속성 을 사용하는 것을 보았습니다 .
<fragment
android:name="com.example.news.ArticleReaderFragment"
android:id="@+id/viewer"
android:layout_weight="2"
android:layout_width="0dp"
android:layout_height="match_parent" />
<fragment
class="com.example.android.apis.app.FragmentLayout$TitlesFragment"
android:id="@+id/titles"
android:layout_weight="1"
android:layout_width="0px"
android:layout_height="match_parent" />
있습니까 안드로이드 : 이름 과 클래스 : 교환? Eclipse에서 자동 완성 기능을 사용하면 둘 다 동일한 문서 팁을 표시합니다 (즉, 속성은 인스턴스화 할 클래스 이름을 제공합니다). 인스턴스화 할 클래스가 FragmentLayout.java 파일 에있는 TitlesFragment 와 같이 Java 파일 이름과 다른 이름을 가질 때 두 번째 이름을 사용해야 할 수도 있습니다. 아니면 android : name 속성 과 함께 package.fileDOTjava $ Class 구문을 사용할 수 있습니까?
Android Java 클래스와 같이 XML 태그 및 속성에 대한 문서를 갖고 싶습니다 (다른 질문 에서 이에 대해 질문했습니다 ).
Activity.onCreateView 소스는 다음과 같이 말합니다.
String fname = attrs.getAttributeValue(null, "class");
TypedArray a = context.obtainStyledAttributes(attrs, com.android.internal.R.styleable.Fragment);
if (fname == null) {
fname = a.getString(com.android.internal.R.styleable.Fragment_name);
}
이는 프로그램이 "클래스"속성을 먼저 본다는 것을 의미합니다. 그리고 실패하면 "이름"속성이 보입니다. 더 효율적인 경우 "클래스"를 사용하는 것이 사실입니다.
android : name 및 class : 상호 교환이 가능합니까?
아마도 그렇습니다. 나는 단지을 사용 class
했으며 대부분의 Google 예제에서 사용하는 것처럼 보이지만 android:name
일부 샘플에서 사용하는 위치를 알 수 있습니다 . 불행히도에 대한 공식적이고 완전한 문서는 없습니다 <fragment>
.
모든 전문가가 여기에있어 죄송합니다. 제가 잘못 알고있을 수 있지만 내 지식 에 따라 fragmentManager 클래스의 getFragmentByTag () 메서드를 사용할 때 fragment의 android : name 속성이 조각을 찾는 데 사용됩니다 . 또한 android : class 속성은 일반적으로 정적 fragment에 포함되는 조각 클래스를 찾는 데 사용됩니다 .
이것이 도움이되기를 바랍니다 .. 감사합니다
'development' 카테고리의 다른 글
Maven으로 스칼라 앱 빌드 (Java 소스가 혼합되어 있음) (0) | 2020.11.25 |
---|---|
Gemfile에 정확한 버전을 지정해야합니까? (0) | 2020.11.25 |
pip의`--no-cache-dir`은 무엇에 좋은가요? (0) | 2020.11.25 |
PDFBox로 PDF 파일 (특히 표 사용) 구문 분석 (0) | 2020.11.25 |
Angular CLI-서비스시 자동 새로 고침을 비활성화하는 방법 (0) | 2020.11.24 |