Déplacement de position de mise en page par programmation linéaire mise en page
J'ai le code xml suivant:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:id="@+id/wrapper"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:layout_margin="10dip"
android:weightSum="1"
android:background="#000"
android:orientation="horizontal">
<TextView
android:id="@+id/textMessage"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight = ".9"
android:layout_gravity="center"
android:layout_margin="5dip"
android:paddingLeft="10dip"
android:background="#FFF"
android:text="TEXT NOT SET"
android:textColor="@android:color/white" />
<ImageView
android:id="@+id/thumbPhoto"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight = ".1"
android:src="@drawable/ic_contact_default"/>
</LinearLayout>
</LinearLayout>
Ce que je voudrais faire est d'avoir la position de mon ImageView changement sur le côté gauche de mon textMessage par programmation.
Ce qui pourrait être fait via un fichier xml en plaçant mes ImageView au-dessus de la TextView. Cependant, je voudrais obtenir le même résultat mais par programmation.
Supposons que j'ai dans mon Adaptateur:
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
if (row == null) {
LayoutInflater inflater = (LayoutInflater) this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row = inflater.inflate(R.layout.chat_item, parent, false);
}
wrapper = (LinearLayout) row.findViewById(R.id.wrapper);
//How should I change the position of my ImageView ??
wrapper.setGravity([some_condition] ? Gravity.LEFT : Gravity.RIGHT);
return row;
}
essayez LayoutParams.
OriginalL'auteur Jeremy | 2014-01-07
Vous devez vous connecter pour publier un commentaire.
essayer comme ça....
À l'aide de cette ligne de
Il ne montre aucun effet. Car ici, vous appliquez la gravité de linearlayout, cette gravité aligne tout son contenu, que ce soit à gauche ou à droite.
Ouais, c'est supposé être yourLinearLayout.addView(vue, index) Thx. je doit maintenant accepter votre réponse..
de toute façon.. vous l'avez compris.. en profiter.
OriginalL'auteur saa
http://developer.android.com/reference/android/widget/LinearLayout.LayoutParams.html
Consulter la documentation ci-dessus pour plus de détails sur la façon de définir la Mise en page de paramètres pour le composant spécifique.
code ci-dessus va vous montrer comment utiliser layoutparam.
OriginalL'auteur CoolMonster