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.