Je construis une pyramide de boutons et je veux que la taille de la pyramide puisse changer dynamiquement. Pour ce faire, j'ai des fichiers XML extrêmement basiques représentant l'activité, chaque ligne de l'activité et chaque bouton. Je modélise la solution de la réponse acceptée au this question. La pyramide se construit correctement, mais la largeur du bouton 50dip n'est pas respectée. Des idées pourquoi? Existe-t-il une meilleure façon de le faire?Android LayoutWidth étant ignoré par l'utilisation en cascade de LayoutInflater
main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pyramid"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_horizontal"
/>
row.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/row"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_horizontal"/>
btn.xml:
<?xml version="1.0" encoding="utf-8"?>
<Button xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/button"
android:layout_width="50dip"
android:layout_height="wrap_content"/>
Activité principale:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
inflate();
}
private void inflate() {
LinearLayout pyramidLayout = (LinearLayout) findViewById(R.id.pyramid);
for (int row = 1 ; row <= mSize; ++row) {
View rowView = getLayoutInflater().inflate(R.layout.row, null);
LinearLayout rowLayout = (LinearLayout) rowView.findViewById(R.id.row);
for (int column = 1; column <= row; ++column) {
View btnView = getLayoutInflater().inflate(R.layout.btn, null);
Button btn = (Button) btnView.findViewById(R.id.button);
btn.setId(row*10 + column);
rowLayout.addView(btnView);
}
pyramidLayout.addView(rowView);
}
}
ouais, c'est tout ce que c'était. Merci – RickNotFred
Great Rick, explication parfaite. Je ne peux pas avoir l'inflation dynamique. Et maintenant ça marche !! réservoirs – Sephy