Android Listview只显示一个项目

我有一个ListView,在那里我改变了行的外观,但列表视图有一行的大小,而不是全屏。

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> 

制作适配器:

 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; } 

项目正在滚动。

对不起,英语不好。 感谢帮助

@Varun的忠告没有帮助

我发现了错误。 谢谢。 回答“答案”)

Solutions Collecting From Web of "Android Listview只显示一个项目"

我发现错误。 tab_news在TabHost的ScrollView中。 如此愚蠢的错误(感谢您的帮助。

更新: ListView不能在xml的ScrollView 。 如果是,则会发生同样的问题。

如果您在ScrollView中使用ListView,您有这个问题。 我的解决scheme如下:

1.创build一个不可滚动的自定义列表视图

 public class NonScrollListView extends ListView { public NonScrollListView(Context context) { super(context); } public NonScrollListView(Context context, AttributeSet attrs) { super(context, attrs); } public NonScrollListView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int heightMeasureSpec_custom = MeasureSpec.makeMeasureSpec( Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, heightMeasureSpec_custom); ViewGroup.LayoutParams params = getLayoutParams(); params.height = getMeasuredHeight(); } 

}

2.使用上面的自定义类为XML文件

  <xx.xx.NonScrollListView android:id="@+id/lv_nonscroll_list" android:layout_width="match_parent" android:layout_height="wrap_content" > </xx.xx.NonScrollListView> 

它适用于所有操作系统版本。 希望最适合你。

list_item.xml的父LinearLayout ,您使用的是android:layout_height="fill_parent"显然它将垂直扩展。

要么:

使用monitor工具,转到hierarchy viewer ,详细检查正在运行的布局。 find有问题的视图,检查其属性/属性是否正确,移到其父视图并检查它,直到find问题。

我认为Listview从您的数据只有一个logging。 只要检查一下你有没有得到你想要在Listview中显示的所有数据。

要么

请检查你的list_item.xml,replace

 <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" > 

代替,

 <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="**fill_parent**" android:orientation="vertical" >