Je veux décomposer mon interface utilisateur en plusieurs dispositions XML. Le premier serait la disposition principale, et les autres seraient les dispositions de contenu.
Je voudrais pouvoir définir quel content_layout doit être inclus dynamiquement au moment de l'exécution, donc je ne veux pas définir un "layout="@+layout/content_layout"
dans mon fichier XML.
Voici mes mises en page:
main_layout.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="600dp"
Android:layout_height="800dp" >
<TextView
Android:id="@+id/title"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_alignParentTop="true" />
<include /> <!-- I WANT TO INCLUDE MY CONTENT HERE -->
<Button
Android:id="@+id/cancelButton"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentBottom="true"
Android:layout_centerHorizontal="true"
Android:text="Cancel" />
</RelativeLayout>
content_layout.xml:
<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/whatever"
Android:layout_height="wrap_content"
Android:layout_width="fill_parent" />
content_layout2.xml:
<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/whatever2"
Android:layout_height="wrap_content"
Android:layout_width="fill_parent" />
Comment puis je faire ça?
Merci!
<RelativeLayout Android:id="@+id/rl" ...
Dans votre code:
// get your outer relative layout
RelativeLayout rl = (RelativeLayout) findById(R.id.rl);
// inflate content layout and add it to the relative layout as second child
// add as second child, therefore pass index 1 (0,1,...)
LayoutInflater layoutInflater = (LayoutInflater)
this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
rl.addView(1, layoutInflater.inflate(R.layout.content_layout, this, false) );
Vous pouvez essayer d'utiliser un ViewStub et simplement changer la disposition qu'il va gonfler par programme.