我怎么能自动调整列表视图,所以它不滚动

目前我有以下布局

<LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_marginTop="9px" android:layout_below="@+id/desc" android:id="@+id/ll_item" android:orientation="vertical" android:paddingRight="3px" android:paddingLeft="3px" android:paddingBottom="5px" android:paddingTop="5px" android:background="@drawable/rounded_corner_lists" > <!-- <ListView android:drawSelectorOnTop="false" android:id="@+id/lv" android:layout_height="fill_parent" android:layout_width="wrap_content" android:divider="#ddd" android:dividerHeight="1px" android:background="@drawable/white" /> --> </LinearLayout> 

列表视图,我已经注释掉了,我已经尝试在xml中设置它的高度设置为wrap_content,fill_parent,目前我正在使用下面的代码以编程方式

 LinearLayout ll_item = (LinearLayout) this.findViewById(R.id.ll_item); if(list.length() > 0) { ll_item.setVisibility(View.VISIBLE); LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,calcListHeight(list)); listview = new ListView(this); listview.setBackgroundResource(R.drawable.white); listview.setDivider( new ColorDrawable(this.getResources().getColor(R.drawable.dividercolor)) ); listview.setDividerHeight(1); listview.setCacheColorHint(0); mAdapter = new JSONAdapter( list, this ); listview.setAdapter(mAdapter); mAdapter.notifyDataSetChanged(); ll_item.addView(listview, lp); } 

这是结果

替代文字

替代文字

所以你可以在这个图像中看到,由于我包含listview在一个linearlayout来获得圆angular的外观,它不会自动伸展来包含整个列表视图,有没有什么办法让这两个元素只是包装内容垂直所以没有滚动没有我编程设置高度? ? ?

我想另一件事,我应该提到的是,我有一个滚动视图中的所有这种布局,因为我想这个列表视图是整个布局的一个小部分,所以它会像

-scrollview
-textview
-textview

-linearlayout
-列表显示

– button

这里是我有一个更简单的布局

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:orientation="vertical" android:layout_height="fill_parent" android:layout_width="fill_parent" android:background="@drawable/bg" xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/titlebar"> <ScrollView android:id="@+id/sv" android:layout_width="fill_parent" android:background="@drawable/bg" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <RelativeLayout android:id="@+id/widget28" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="4dip" > <LinearLayout android:orientation="vertical" style="@style/rounded_corner_full_width_button" android:id="@+id/editfields"> <ListView android:drawSelectorOnTop="false" android:id="@+id/lv" android:layout_height="fill_parent" android:layout_width="wrap_content" android:divider="#ddd" android:dividerHeight="1px" android:background="@drawable/white"/> </LinearLayout> </RelativeLayout> </ScrollView> </LinearLayout> 

Solutions Collecting From Web of "我怎么能自动调整列表视图,所以它不滚动"

ListViews不会进入ScrollViews。

ListView是用于有效地显示无限制内容的有限窗口。 如果您要在ListView上“禁用滚动”以将其置于ScrollView中,则首先会失去使用ListView的所有实际原因。

如果要使用ListView来显示大量内容或无限内容,但也有上下滚动的内容,请使用addHeaderViewaddFooterView向ListView添加页眉或页脚视图。 如果列表内容只是您所描述的总体布局的一小部分,那么这对您来说可能不是最好的方法。

如果您有一小部分有限的内容来展示,请继续使用ScrollView,并在适当的地方以编程方式为您的“列表项目”生成子视图。

框架中使用的一种常见模式是将充满膨胀的XML内容与编程生成的内容混合在一起,在布局XML(通常是LinearLayoutFrameLayout )中添加一个占位符视图。 使用findViewById在运行时find它并添加生成的子视图。

如果你已经写了一个ListAdapter ,你甚至可以用这个方法来使用ListAdapter ,只需要在所有适配器位置(其中的content就是你所在的占位符视图content.addView(adapter.getView(position, null, content))的循环中调用content.addView(adapter.getView(position, null, content))findViewById )。 请注意,只有在知道适配器中有less量列表项的情况下,这才是可行的!

在列表结尾添加一个空的项目

例:

 ArrayList<String> options = new ArrayList<String>(); String lastItem = ""; int lastPosition; options.add(lastItem); public function addItem() { lastPosition = options.size() - 1; lastItem = options.get(lastPosition); options.remove(lastPosition); //add new items dynamically for (int i = 0; i < 5; i++) options.add("new item: "+i); //add empty item options.add(lastItem); }