Android: android.R.id.content ne için kullanılır?


141

Herkes "android.R.id.content" ne anlamını açıklayabilir?

Nasıl kullanılıyor?

http://developer.android.com'un bir açıklaması yok.

public static final int content Şu
tarihten beri: API Seviye 1

Sabit Değer: 16908290 (0x01020002)


94
android.R.id.contentgerçek adını / türünü / kimliğini bilmek zorunda kalmadan size bir görünümün kök öğesini verir. Check out stackoverflow.com/questions/4486034/...
— Philipp Reichart

2
Bu, mFragmentTransaction.add (android.R.id.content, myFragment); gibi parça işlemlerinde kullanışlıdır;
— IgorGanapolsky

@IgorGanapolsky Örnek bir uygulama bu tür bir işlemi koşullu olarak gerçekleştirir: if(fragmentManager.findFragmentById(android.R.id.content)==null) {fragmentManager.beginTransaction(android.R.id.content, list).add().commit();}Hangi Viewkök öğesinin bu olduğunu söyleyebilir misiniz ?
— Solace

@Zarah Sözdiziminizin burada doğru ve derlenebilir olduğundan emin misiniz?
— IgorGanapolsky

Düzenin sınıfı nedir android.R.id.content ?
— Sustant

Yanıtlar:


100

As Philipp Reichart yorumladı :

android.R.id.contentgerçek adını / türünü / kimliğini bilmek zorunda kalmadan size bir görünümün kök öğesini verir. Check out http://stackoverflow.com/questions/4486034/android-how-to-get-root-view-from-current-activity


5
Kullanımına ilişkin pratik bir örnek paragraf 2'de bulunabilir: developer.android.com/guide/topics/ui/actionbar.html#Tabs
— OrhanC1

4
" gerçek adını / türünü / kimliğini bilmek zorunda kalmadan size bir görünümün kök öğesini verir." Kök öğesinin hangi görünümde olmasını istediğimizi nasıl bilebilir.
— Solace

22

android.R.id.contentİD değeri belirten ViewGroupbir bütün içerik alanı Activity.

Aşağıdakilerle kullanılabilir 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();
        }
    }

    ...

}

Yukarıdaki kod, Viewtarafından oluşturulmuş tarafından belirtilen tarafından Fragmenteklenir .ViewGroupandroid.R.id.content


9

Google tasarımcıları, belirli veya önerilen tasarım yönergelerine sahip Android UX geliştirir. Android.R.id.content düzeni, Android'in iyi bir standart olduğuna inandığı birkaç özellik ile doğrusal bir düzen tanımlar .

Bu nedenle bir Fragment Manager'ın android.R.id.content ile kök görünümünün yüklenmesi bu yönergelerin uygulanmasını sağlar.

NOT: Bu düzen, alt parçaların bu kök görünümdeki özelliklerin üzerine yazmasına izin vermek için android: addStatesFromChildren = "true" niteliğini ayarladı.

Sürüm 19'dan itibaren android.R.id.content bir dosyada tanımlanmıştır: 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">
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.