Android Listview n'afficher qu'un seul élément
J'ai une ListView, où j'ai changé d'aspect de la ligne, mais listview ont la taille d'une ligne, au lieu de fullscreen.
list_item.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textView_news_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:textColor="#0082A8" />
<TextView
android:id="@+id/textView_news_header"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
tab_news.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/list_news"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</ListView>
</LinearLayout>
Prise De L'Adaptateur:
public class RSSAdapter extends ArrayAdapter<RSSitem> {
Context context;
int layoutResourceId;
ArrayList<RSSitem> data = null;
SimpleDateFormat sdf = new SimpleDateFormat("kk:mm ");
public RSSAdapter(Context context, int layoutResourceId, ArrayList<RSSitem> data) {
super(context, layoutResourceId, data);
this.layoutResourceId = layoutResourceId;
this.context = context;
this.data = data;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
NewsHolder holder = null;
if(row == null)
{
LayoutInflater inflater = ((Activity)context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);
holder = new NewsHolder();
holder.txtTime = (TextView)row.findViewById(R.id.textView_news_time);
holder.txtNews = (TextView)row.findViewById(R.id.textView_news_header);
row.setTag(holder);
}
else
{
holder = (NewsHolder)row.getTag();
}
RSSitem item = data.get(position);
holder.txtTime.setText(sdf.format(item.getPubDate()));
holder.txtNews.setText(item.getTitle());
return row;
}
static class NewsHolder
{
TextView txtTime;
TextView txtNews;
}
Éléments sont le défilement.
Désolé pour les mauvais en anglais. Merci pour l'aide
Conseils de @Varun n'a pas aider
J'ai trouvé l'erreur. Merci. Réponse dans "réponses")
- votre
list_item
a une hauteur defill_parent
. Utilisationwrap_content
à la place. - Vous avez également le poids mis en place sur l'enfant vues à l'intérieur de la LinearLayout de la list_item. Vous avez une hauteur de fill_parent, et vous vous attendez à ne pas prendre la totalité de l'écran?
- joindre une capture d'écran
- Merci, mais il n'aide pas
- J'ai à faible réputation de le faire
- télécharger gratuitement pic-serveur et coller le lien ici
- même problème(
Vous devez vous connecter pour publier un commentaire.
J'ai Trouvé l'erreur.
tab_news était dans le ScrollView de TabHost.
Donc, erreur stupide(
Merci pour l'aide.
Mise à jour:
ListView
ne doivent pas être sousScrollView
en xml. Si c'est le même problème se produit.Mise à jour 2 :Vous pouvez utiliser
NestedScrollView
Si vous utilisez ListView à l'intérieur de ScrollView, vous avez ce problème. Et ma solution est suivants:
1. Créer une listview qui est non défilement
}
2. Utiliser au-dessus de la classe personnalisée pour fichier xml
Il a bien fonctionné sur tous les systèmes d'exploitation-version pour moi.
Espérons le meilleur pour vous.
Dans
list_item.xml
parentLinearLayout
, vous utilisezandroid:layout_height="fill_parent"
Évidemment, il va s'étendre verticalement.OU:
utilisation
monitor
outil, aller à l'hierarchy viewer
, inspecter l'exécution de Mise en page dans le détail. Trouver le point de Vue avec le problème, vérifiez ses attributs/propriétés sont corrects, passez à la Vue parente et de vérifier, jusqu'à ce que vous trouver le problème.Je pense que Listview est de prendre un seul enregistrement à partir de vos données. Il suffit de vérifier que vous avez toutes les données qui vous êtes désireux de le montrer dans la liste.
OU
Veuillez vérifier votre list_item.xml, Remplacer
au lieu de,
De changer la hauteur de façon dynamique donne des NPE la plupart du temps... la meilleure solution est de créer une liste personnalisée de vue qui n'est pas en défilant. Vous trouverez un grand nombre de codes pour le.