Android : android.R.id.content는 무엇을 위해 사용됩니까?


141

누구나 "android.R.id.content"의 의미를 설명 할 수 있습니까?

어떻게 사용 되나요?

http://developer.android.com에 대한 설명이 없습니다.

공개 정적 final int 컨텐츠
이후 : API 레벨 1

상수 값 : 16908290 (0x01020002)


94
android.R.id.content실제 이름 / 유형 / ID를 몰라도 뷰의 루트 요소를 제공합니다. 확인 stackoverflow.com/questions/4486034/...
필립 Reichart

2
이것은 다음과 같은 프래그먼트 트랜잭션에서 유용합니다 : mFragmentTransaction.add (android.R.id.content, myFragment);
IgorGanapolsky

@IgorGanapolsky 예제 앱은 이런 종류의 트랜잭션을 조건부로 수행합니다. 루트 요소가 무엇 if(fragmentManager.findFragmentById(android.R.id.content)==null) {fragmentManager.beginTransaction(android.R.id.content, list).add().commit();}인지 알 수 있습니까 View?
Solace

@Zarah 당신의 문법이 정확하고 컴파일 가능합니까?
IgorGanapolsky

레이아웃의 클래스는 무엇입니까 android.R.id.content ?
Sushant

답변:


100

Philipp Reichart는 다음과 같이 언급했습니다 .

android.R.id.content실제 이름 / 유형 / ID를 몰라도 뷰의 루트 요소를 제공합니다. http://stackoverflow.com/questions/4486034/android-how-to-get-root-view-from-current-activity를 확인 하십시오.


5
실제 사용 예는 단락 2에서 찾을 수 있습니다. developer.android.com/guide/topics/ui/actionbar.html#Tabs
OrhanC1

4
" 실제 이름 / 유형 / ID를 알 필요없이 의 루트 요소 제공합니다."루트 요소 를 원하는 뷰 가 무엇인지 어떻게 알 수 있습니까?
Solace

22

android.R.id.contentID 값이 나타내는 ViewGroup의 전체 컨텐츠 영역 Activity.

함께 사용할 수 있습니다 Fragment:

public class MyActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        if (savedInstanceState == null) {
            getSupportFragmentManager().beginTransaction()
                .add(android.R.id.content, MyFragment.newInstance())
                .commit();
        }
    }

    ...

}

위의 코드는로 View만든에 의해 Fragment에 의해 ViewGroup식별됩니다 android.R.id.content.


9

Google 디자이너는 구체적이거나 권장되는 디자인 가이드 라인으로 Android UX를 개발합니다. android.R.id.content 레이아웃은 안드로이드가 좋은 표준이라고 믿는 몇 가지 속성 으로 linearlayout 을 정의합니다 .

따라서 android.R.id.content로 Fragment Manager의 루트 뷰를로드하면 이러한 지침이 구현됩니다.

참고 :이 레이아웃은 하위 프래그먼트 가이 루트 뷰 의 속성 을 덮어 쓸 수 있도록 android : addStatesFromChildren = "true" 속성을 설정했습니다.

버전 19부터 android.R.id.content는 다음 파일에 정의되어 있습니다. auto_complete_list.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/content"
    android:orientation="vertical"
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"
    android:background="@android:drawable/edit_text"
    android:divider="@android:drawable/divider_horizontal_textfield"
    android:addStatesFromChildren="true">
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.