165 votes

Android : A quoi sert Android.R.id.content ?

Quelqu'un pourrait-il expliquer la signification de "Android.R.id.content" ?

Comment l'utilise-t-on ?

http://developer.Android.com n'a pas d'explication.

public static final int content
Depuis : API Niveau 1

Valeur constante : 16908290 (0x01020002)

105 votes

android.R.id.content vous donne l'élément racine d'une vue, sans avoir à connaître son nom/type/ID réel. Consultez stackoverflow.com/questions/4486034/

2 votes

Cela est utile dans les transactions de fragments comme : mFragmentTransaction.add(Android.R.id.content, myFragment) ;

0 votes

@IgorGanapolsky Un exemple d'application effectue ce type de transaction dans une conditionnelle : if(fragmentManager.findFragmentById(android.R.id‌​.content)==null) {fragmentManager.beginTransaction(android.R.id.content, list).add().commit();} Pouvez-vous dire quelle View C'est l'élément racine de l'entreprise ?

114voto

Gili Points 14674

Comme Philipp Reichart a commenté :

android.R.id.content vous donne l'élément racine d'une vue, sans avoir à connaître son nom/type/ID réel. Consultez http://stackoverflow.com/questions/4486034/Android-how-to-get-Root-view-from-current-activity

5 votes

Un exemple pratique de son utilisation se trouve au paragraphe 2 : developer.Android.com/guide/topics/ui/actionbar.html#Tabs

4 votes

"vous donne l'élément racine d'une vue sans avoir à connaître son nom/type/ID réel". Comment sait-il quelle est la vue dont nous voulons l'élément racine ?

27voto

Danny Suen Points 86

El android.R.id.content La valeur ID indique le ViewGroup de l'ensemble de la zone de contenu d'un Activity .

Il peut être utilisé avec 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();
        }
    }

    ...

}

Le code ci-dessus insérera le View créé par Fragment dans le ViewGroup identifié par android.R.id.content .

10voto

CBO Points 65

Les concepteurs de Google développent l'UX d'Android à l'aide de directives de conception spécifiques ou recommandées. La disposition Android.R.id.content définit une disposition linéaire avec quelques attributs qu'Android estime être un bon standard.

Ainsi, le chargement de la vue racine d'un gestionnaire de fragments avec Android.R.id.content garantit l'application de ces directives.

NOTE : Cette mise en page a défini l'attribut : Android:addStatesFromChildren="true" (en anglais) pour permettre aux fragments enfants d'écraser les attributs de cette vue racine.

À partir de la version 19, Android.R.id.content est défini dans un fichier : 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">

5voto

Prabuddha Points 37089

Checkout ce réponse qui explique les identifiants intégrés d'Android ainsi que les identifiants créés par les utilisateurs.

0voto

Rasoul Miri Points 1201

Android.R.id.content est très utile lorsque vous avez besoin d'une vue, par exemple :

Montrer le Snackbar :

Snackbar.make(activity.findViewById(android.R.id.content), MESSAGE, Snackbar.LENGTH_LONG).show();

Opération de fragmentation

 getSupportFragmentManager().beginTransaction()
                .add(android.R.id.content, FragmnetTest.newInstance())
                .commit();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X