Je vous montre l'image ci-dessous dans laquelle la hauteur des rangées n'est pas la même, je veux que les rangées soient de la même hauteur.
Dans mon programme, j'obtiens les données du service XML que j'ai analysé et affiche le résultat sur la vue liste mais la hauteur des lignes ListView n'est pas la même.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical"
Android:background="@drawable/list_selector"
Android:padding="3dip"
Android:layout_width="match_parent"
Android:gravity="center"
Android:layout_height="10dp">
<TextView Android:layout_height="wrap_content" Android:text="ITEM"
Android:layout_width="wrap_content" Android:id="@+id/txtItem"
Android:textAppearance="?android:attr/textAppearanceLarge"
Android:textSize="15dip"
Android:textStyle="bold"
Android:textColor="#040404"></TextView>
<TextView Android:layout_height="wrap_content" Android:text="MANUFACTURER"
Android:layout_width="wrap_content" Android:id="@+id/txtItemTwo"
Android:textAppearance="?android:attr/textAppearanceMedium"
Android:textSize="14dip"
Android:textColor="#FF7F50"
></TextView>
</LinearLayout>
Je fixe déjà la hauteur
Android: layout_height = "10dp"
mais toujours pas pareil lors de l'affichage sur listView.
Ceci est mon adaptateur personnalisé pour getVieew: -
public class MyEventAdapter extends BaseAdapter {
ArrayList < String > listTitle;
ArrayList < String > listFullText;
Activity activity;
public MyEventAdapter(Activity activity, ArrayList < String > listTitle, ArrayList < String > listFullText) {
super();
this.listTitle = listTitle;
this.listFullText = listFullText;
this.activity = activity;
}
public int getCount() {
// TODO Auto-generated method stub
return listTitle.size();
}
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
private class ViewHolder {
TextView txtViewTitle;
TextView txtViewTitleTwo;
}
public View getView(int position, View view, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder title;
LayoutInflater inflater = activity.getLayoutInflater();
if (view == null) {
view = inflater.inflate(R.layout.lview_row, null);
title = new ViewHolder();
title.txtViewTitle = (TextView) view.findViewById(R.id.txtItem);
title.txtViewTitleTwo = (TextView) view.findViewById(R.id.txtItemTwo);
view.setTag(title);
} else {
title = (ViewHolder) view.getTag();
}
title.txtViewTitle.setText(listTitle.get(position));
title.txtViewTitleTwo.setText(listFullText.get(position));
return view;
}
}
N'importe qui me plaît pour obtenir le résultat souhaité.
Merci d'avance.
le problème est que vous utilisez mal le gonfleur, ne donnez pas null comme nœud racine
si vous passez null comme nœud racine, tous les paramètres de taille que vous définissez dans le xml ne fonctionnent pas
le bon code est
view = inflater.inflate(R.layout.lview_row, parent, false);
http://www.doubleencore.com/2013/05/layout-inflation-as-intended/
remplacez la méthode getView(int position, View convertView, ViewGroup parent)
dans votre classe MyEventAdapter
et utilisez view.setMinimumHeight(minHeight);
pour définir la hauteur de vue minimale.
définissez la hauteur de vue minimale avec la méthode `getView (int position, View convertView, ViewGroup parent) 'comme suit:
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder title;
LayoutInflater inflater = activity.getLayoutInflater();
if (view == null) {
view = inflater.inflate(R.layout.lview_row, null);
view.setMinimumHeight(minHeight); //set minimum height of view here
title = new ViewHolder();
title.txtViewTitle = (TextView) view.findViewById(R.id.txtItem);
title.txtViewTitleTwo = (TextView) view.findViewById(R.id.txtItemTwo);
view.setTag(title);
} else {
title = (ViewHolder) view.getTag();
}
title.txtViewTitle.setText(listTitle.get(position));
title.txtViewTitleTwo.setText(listFullText.get(position));
return view;
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical"
Android:background="@drawable/list_selector"
Android:padding="3dip"
Android:layout_width="match_parent"
Android:gravity="center"
Android:layout_height="match_parent">
<TextView Android:layout_height="wrap_content" Android:text="ITEM"
Android:layout_width="wrap_content" Android:id="@+id/txtItem"
Android:textAppearance="?android:attr/textAppearanceLarge"
Android:textSize="15sp"
Android:textStyle="bold"
Android:textColor="#040404"></TextView>
<TextView Android:layout_height="wrap_content" Android:text="MANUFACTURER"
Android:layout_width="wrap_content" Android:id="@+id/txtItemTwo"
Android:textAppearance="?android:attr/textAppearanceMedium"
Android:textSize="14sp"
Android:textColor="#FF7F50"
></TextView>
</LinearLayout>
Si vous avez plus d'une ligne dans votre texte, définissez votre texte sur une seule ligne afin qu'il ne vienne pas en deuxième ligne et ne modifie pas la hauteur de chaque ligne.
Si vous avez plus d'une ligne dans votre texte, définissez votre texte sur une seule ligne afin qu'il ne vienne pas en deuxième ligne et ne modifie pas la hauteur de chaque ligne.