Si, par exemple, j'ai défini une mise en page linéaire racine d'orientation verticale:
main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/my_root"
Android:layout_height="wrap_content"
Android:layout_width="fill_parent"
Android:orientation="vertical"
<!-- I would like to add content here dynamically.-->
</LinearLayout>
Dans la structure linéaire racine, je voudrais ajouter plusieurs dispositions linéaires enfants , chacune des orientations de la disposition linéaire enfant étant horizontal . Avec tout cela, je pourrais me retrouver avec une table comme sortie.
Par exemple, root avec une disposition enfant telle que:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/my_root"
Android:layout_height="wrap_content"
Android:layout_width="fill_parent"
Android:orientation="vertical"
<!-- 1st child (1st row)-->
<LinearLayout
...
Android:orientation="horizontal">
<TextView .../>
<TextView .../>
<TextView .../>
</LinearLayout>
<!-- 2nd child (2nd row)-->
...
</LinearLayout>
Le nombre de présentations linéaires enfants et leur contenu étant assez dynamiques, j'ai décidé d'ajouter le contenu à la présentation linéaire racine par programme.
Comment la deuxième présentation peut-elle être ajoutée à la première par programme, ce qui pourrait également définir tous les attributs de présentation pour chaque enfant et ajouter d'autres éléments à l'intérieur de l'enfant?
Dans votre onCreate()
, écrivez ce qui suit
LinearLayout myRoot = (LinearLayout) findViewById(R.id.my_root);
LinearLayout a = new LinearLayout(this);
a.setOrientation(LinearLayout.HORIZONTAL);
a.addView(view1);
a.addView(view2);
a.addView(view3);
myRoot.addView(a);
view1
, view2
et view3
sont vos TextView
s. Ils sont facilement créés par programme.
LinearLayout layout = (LinearLayout)findViewById(R.id.layout);
View child = getLayoutInflater().inflate(R.layout.child, null);
layout.addView(child);
Vous pouvez réaliser LinearLayout en cascade de la manière suivante:
LinearLayout root = (LinearLayout) findViewById(R.id.my_root);
LinearLayout llay1 = new LinearLayout(this);
root.addView(llay1);
LinearLayout llay2 = new LinearLayout(this);
llay1.addView(llay2);