Puisque je suis encore en train d'apprendre Android (et il semble qu'Amazon dise que ça va prendre 2 mois avant que j'obtienne le livre Hello, Android) je suis toujours en train de jouer avec des choses simples. Je n'ai aucun problème pour obtenir une icône à afficher avec le clic d'un bouton sur mon RelativeLayout en utilisant ImageView. Le code pour la création, il est comme suit:Ajouter dynamiquement du contenu à RelativeLayout
private int mIconIdCounter = 1;
private ImageView addIcon(){
ImageView item = new ImageView(this);
item.setImageResource(R.drawable.tiles);
item.setAdjustViewBounds(true);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
if(mIconIdCounter != 1){
params.addRule(RelativeLayout.RIGHT_OF, 1);
}
item.setLayoutParams(params);
item.setId(mIconIdCounter);
++m_IconIdCounter;
return item;
}
et le code pour ajouter l'article est:
Button addButton = (Button)findViewById(R.id.add_new);
addButton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View view) {
addContentView(addIcon(), new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
}
});
Lorsque je clique sur mon bouton ce qui se passe est toutes les vues nouvellement créées sont placées au sommet d'une autre . J'aimerais qu'ils soient placés à la droite de l'élément suivant. J'ai fait une recherche rapide sur SO pour les articles relatifs à RelativeLayout et trouvé certains qui étaient similaires (here, here, here, et here) mais tandis que ceux-ci adressés obtenant le contenu dans le RelativeView ils ne semblaient pas adresser l'aspect de positionnement.
Qu'est-ce que je fais mal?
EDIT:
Mon principal xml ressemble:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button
android:id="@+id/add_new"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/add_new"
android:layout_alignParentBottom="true" />
</RelativeLayout>
Donc, si mon fichier XML principal n'est rien de plus qu'un RelativeLayout et un Button, comment y accéder? Tout comme (R.id.main)? Je vais mettre à jour ma question pour vous montrer. – wheaties
vous devez donner à votre relativelayout un ID avec android: id = "+ @ id/my_layout". Ensuite, vous pouvez utiliser votre mise en page dans votre code. afin que vous puissiez y ajouter des vues. espérons que cela aide! – Knossos
pas de problème. heureux d'avoir pu aider. – Knossos