Comment modifier par programmation la hauteur d'un élément de la liste après la liste a été rempli
Je suis en train de travailler sur une liste d'articles d'actualités. Ma liste est une Activity
qui s'étend ListActivity
. J'ai également créé un ArrayAdapter
que j'utilise pour gonfler les éléments de ma liste. Le ArrayAdapter
utilise une mise en page simple avec un ImageView
et deux TextView
s. Tout fonctionne, mais quand je remplace la onListItemClick()
méthode de la et essayez de redimensionner les éléments de la liste quand je clique sur eux, rien ne se passe.
protected void onListItemClick(ListView l, View v, int position, long id) {
v.getLayoutParams().height=300;
}
J'ai essayé ci-dessus avec LayoutParams
ainsi
Ici est la mise en page de chaque ligne que j'utilise pour remplir ma liste:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:background="@color/white"
>
<ImageView
android:id="@+id/icon"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_marginLeft="4dp"
android:layout_marginRight="10dp"
android:layout_marginTop="4dp"
android:src="@drawable/ic_launcher" >
</ImageView>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/title1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@+id/label"
android:textColor="@color/black"
android:textColorHint="@color/black"
android:textSize="10dp"
android:textStyle="bold" >
</TextView>
<TextView
android:id="@+id/label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@+id/label"
android:textColor="@color/black"
android:textColorHint="@color/black"
android:textSize="10dp" >
</TextView>
</LinearLayout>
</LinearLayout>
Quelqu'un a connu le même problème?
Quelqu'un peut-il apporter un peu de lumière pour un débutant dans Android?
OriginalL'auteur Sergios | 2012-08-03
Vous devez vous connecter pour publier un commentaire.
Salut les gars j'ai enfin trouvé une solution à mon problème et je voudrais le partager avec le reste de la communauté.
Je suis en utilisant un arrayAdapter à gonfler mon rowlayout voici son code:
Mon activité principale extends ListActivity où les éléments de la liste sont lues à partir de certains des fichiers json dans une asynctask. Dans le onPostExecute méthode de AsyncTask ma liste est créée avec les éléments récupérés.
Voici le code pour le onListItemClick méthode:
L'astuce est d'appeler le requestLayout méthode de manière à ce que votre mise en page est actualisée.
AbsListView.LayoutParams listViewRow_params = (AbsListView.LayoutParams) convertView.getLayoutParams();
des suggestions sur la façon d'accéder à la LayoutParams dans getView?OriginalL'auteur Sergios