Vous pouvez avoir vos dispositions dans un seul fichier xml. Ceux que vous ne voulez pas voir immédiatement, définissez android:visibility="gone"
dans le fichier XML, et lors de l'exécution, vous appelez hiddenView.setVisibility(View.VISIBLE);
.
Votre XML ressemblerait à quelque chose comme ceci:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout android:id="@+id/layout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</LinearLayout>
<LinearLayout android:id="@+id/layout2"
android:visibility="gone"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</LinearLayout>
</RelativeLayout>
lors de l'exécution que vous pourriez faire:
layout1.setVisibility(View.GONE);
layout2.setVisibility(View.VISIBLE);
Ceci essentiellement créer l'apparence de l'échange de mises en page.
Je crois que cela fonctionnerait également si vous avez partagé des objets entre les deux mises en page. Assurez-vous simplement d'avoir défini l'ID en premier en utilisant android:id="@+id/view1"
et tous les réglages suivants de cet identifiant vous feriez android:id="@id/view1"
(sans le +).
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout android:id="@+id/layout1"
android:layout_width="fill_parent">
<View android:id="@+id/view1"/>
</LinearLayout>
<LinearLayout android:id="@+id/layout2"
android:visibility="gone"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<View android:id="@id/view1"/>
</LinearLayout>
</RelativeLayout>
J'aime beaucoup cette réponse. Personnellement, j'utilise un ViewFlipper pour gérer plusieurs mises en page afin de ne pas avoir à gérer les variables [Ressource] entrant dans la portée et à l'extérieur lorsque leur mise en page est définie sur la vue du contenu. Les deux approches sont viables. –
Ah, je n'ai aucune expérience avec la classe ViewFlipper. Je devrais vérifier la prochaine fois que je dois faire quelque chose comme ça. – SSZero
Oh wow qui a parfaitement fonctionné: D Merci! – justinl