IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Afficher/changer seulement un RelativeLayout


Sujet :

Android

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2014
    Messages : 39
    Par défaut Afficher/changer seulement un RelativeLayout
    Une autre petite question... je crois que celle-ci s'applique plus sur le forum Android que sur le Forum java.

    J'ai plusieurs interface graphique XML dans la même activitée. En quelques sorte un menu qui ne fait pas toute l'écran un peu comme un dialog. Cependant elles on tous le même backgroung et des boutons en communs... j'aimerais changer seulement une partie (un RelativeLayout).

    Mes interface du menu sont monté grossomodo comme suit...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@drawable/background"
        android:gravity="center" >
     
        <RelativeLayout
            android:id="@+id/LayoutMenuBackground"
            android:layout_width="500dp"
            android:layout_height="272dp"
            android:background="@drawable/background_menu"
            android:gravity="center" >
     
         <Button
            android:id="@+id/Button_MenuBack"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:background="@drawable/button_back1" />
     
        <Button
            android:id="@+id/Button_MenuNext"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:background="@drawable/button_next1" />
     
            <RelativeLayout
                android:id="@+id/LayoutMenuContent"
                android:layout_width="500dp"
                android:layout_height="272dp"
                android:background="#00000000">
     
                //Contenu qui change d'un fichier XML a l'autre
     
            </RelativeLayout>
        </RelativeLayout>
    </LinearLayout>
    Pour l'instant je les appelle par setContentView(R.layout.monFichierXML) a chaque page quand on click sur le bouton next ou back.
    Mais on vois biens que le background est reloader chaque fois ce qui n'est pas parfaitement fluide.

    J'aimerais afficher la vue et ensuite changer seulement le contenu de mon RelativeLayout avec l'id @+id/LayoutMenuContent... est-ce possible ou on doit afficher tout le layout au complet chaque fois...

    J'ai meme essayer setContentView(R.id.LayoutMenuContent) mais ca plante au chargement.

    Merci encore.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2014
    Messages : 39
    Par défaut
    Laissez faire je viens de trouver ma réponse en 4 lignes de code

    au cas ou ca interesserait quelqu'un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    // je set la vue comme à l'habitude
    setContentView(R.layout.monLayoutPrincipaleXML)
    // je declare le RelativeLayout ou je veux inserer ma vue dans monLayoutPrincipale
    RelativeLayout layoutPrincipale =(RelativeLayout)findViewById(R.id.LayoutBackground);
    // je créé la vue a inséré 		
    View viewContenant = getLayoutInflater().inflate(R.layout.mondeuxiemeLayoutContenant, layoutPrincipale,false);
    // et enfin j'ajoute la vue dans la vuePrincipale
    layoutPrincipale.addView(viewContenant);
    wow ca va allèger mon code

    merci quand meme

  3. #3
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Il vaudrait mieux utiliser un FrameLayout (et pas un RelativeLayout), dans lequel on va coller les views (sans doute un RelativeLayout).

    La méthode propre consiste à utiliser un FragmentLayout et pointer sur le fragment qui gère le contenu.
    Celui-ci pouvait être remplacé à volonté par un autre fragment (voir le même avec des données différentes) tout en conservant la logique de back par exemple....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/12/2009, 14h39
  2. [XSLT]Tous copier et changer seulement des balises défini
    Par totoen dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 18/09/2008, 11h24
  3. Comment changer seulement la couleur de la bordure ?
    Par jer_the_one dans le forum Composants VCL
    Réponses: 16
    Dernier message: 12/08/2004, 14h39
  4. [WAP/WML] Affiche seulement le code source !!!
    Par Alkmie dans le forum XML/XSL et SOAP
    Réponses: 7
    Dernier message: 25/11/2003, 17h03
  5. Réponses: 2
    Dernier message: 23/11/2003, 18h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo