Android: Untuk apa android.R.id.content digunakan?

140

Adakah yang bisa menjelaskan arti "android.R.id.content"?

Bagaimana ini digunakan?

http://developer.android.com tidak memiliki penjelasan.

konten int final statis publik
Sejak: API Level 1

Nilai Konstan: 16908290 (0x01020002)

pengguna996659
sumber
94
android.R.id.contentmemberi Anda elemen root tampilan, tanpa harus tahu nama / tipe / ID yang sebenarnya. Lihat stackoverflow.com/questions/4486034/...
Philipp Reichart
2
Ini berguna dalam transaksi fragmen seperti: mFragmentTransaction.add (android.R.id.content, myFragment);
IgorGanapolsky
@IgorGanapolsky Contoh aplikasi melakukan transaksi semacam ini dalam kondisi: if(fragmentManager.findFragmentById(android.R.id.content)==null) {fragmentManager.beginTransaction(android.R.id.content, list).add().commit();}Dapatkah Anda mengetahui Viewelemen root mana ini?
Solace
@ Zarah Apakah Anda yakin sintaks Anda benar di sini dan dapat dikompilasi?
IgorGanapolsky
Apa kelas tata letak yang terkait android.R.id.content ?
Sushant

Jawaban:

98

Seperti Philipp Reichart berkomentar :

android.R.id.contentmemberi Anda elemen root tampilan, tanpa harus tahu nama / tipe / ID yang sebenarnya. Lihat http://stackoverflow.com/questions/4486034/android-how-to-get-root-view-from-current-activity

Gili
sumber
5
Contoh praktis penggunaannya dapat ditemukan dalam paragraf 2: developer.android.com/guide/topics/ui/actionbar.html#Tabs
OrhanC1
4
"memberi Anda elemen root tampilan , tanpa harus tahu nama / tipe / ID sebenarnya" Bagaimana ia tahu tampilan mana yang kami inginkan dari elemen root.
Penghiburan
21

Nilai android.R.id.contentID menunjukkan ViewGroupseluruh area konten dari suatuActivity .

Ini dapat digunakan dengan 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();
        }
    }

    ...

}

Kode di atas akan memasukkan yang Viewdibuat oleh Fragmentke ViewGroupoleh android.R.id.content.

DYS
sumber
9

Desainer Google mengembangkan Android UX dengan pedoman desain khusus atau yang direkomendasikan. Tata letak android.R.id.content mendefinisikan linearlayout dengan beberapa atribut yang menurut Android adalah standar yang baik.

Dengan demikian memuat tampilan root Fragment Manager dengan android.R.id.content memastikan pedoman ini diimplementasikan.

CATATAN: Tata letak ini telah menetapkan atribut: android: addStatesFromChildren = "true" untuk memungkinkan fragmen anak menimpa atribut di rootview ini.

Pada versi 19, android.R.id.content didefinisikan dalam file: 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">
TheChrisONeil
sumber