listViews的最后一个没有滚动或显示所有项目。
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#ffffff">
<LinearLayout
android:id="@+id/movie_detail_container"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
>
<LinearLayout android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="#04B4AE"
android:layout_marginTop="10dp">
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:textColor="#ffffff"
android:textSize="50dp" />
</LinearLayout>
<LinearLayout
android:layout_width="382dp"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginRight="5dp">
<ImageView
android:id="@+id/grid_item_image"
android:layout_width="116dp"
android:layout_height="199dp"
android:layout_marginTop="5dp"
android:layout_marginLeft="20dp"
android:scaleType="fitCenter" />
<LinearLayout
android:layout_height="202dp"
android:layout_width="172dp"
android:layout_marginLeft="15dp"
android:orientation="vertical" >
<TextView
android:id="@+id/release_date"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:background="#00000c"
android:padding="10dp"
android:textColor="#fff"
android:textSize="20dp" />
<TextView
android:id="@+id/vote_average"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:padding="10dp"
android:textColor="#000000"
android:textSize="25dp"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ADD"
android:id="@+id/addfavorite"
android:layout_gravity="right|top" />
</LinearLayout>
</LinearLayout>
<TextView
android:id="@+id/overview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:background="@color/white"
android:padding="10dp"
android:textColor="@color/black"
android:textSize="20dp" />
<ListView
android:id="@+id/reviewMovie"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:background="#04B4AE"
android:layout_weight="0.68">
</ListView>
<ListView
android:id="@+id/videoMovie"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/grey"
/>
</LinearLayout>
</ScrollView>
我不是最后两个ListView Scroll或至少显示其中的所有项目,我确定有很多项目,只有一个项目出现
答案 0 :(得分:0)
首先,在ListView
内使用ScrollView
完全没有建议和建议。您可以更好地利用getItemViewType()
ListView
来补偿行项目的不同类型的布局。
如果你将ListView
放在ScrollView
内,那么ListView
就不会伸展到它的全高,同样也会发生同样的情况。因此,如果您仍想使用ListView
内的ScrollView
,则必须计算ListView
的高度。以下是根据儿童计算ListView
身高的代码。
public static void setListViewHeightBasedOnChildren(ListView listView) {
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null)
return;
int desiredWidth = MeasureSpec.makeMeasureSpec(listView.getWidth(), MeasureSpec.UNSPECIFIED);
int totalHeight = 0;
View view = null;
for (int i = 0; i < listAdapter.getCount(); i++) {
view = listAdapter.getView(i, view, listView);
if (i == 0)
view.setLayoutParams(new ViewGroup.LayoutParams(desiredWidth, LayoutParams.WRAP_CONTENT));
view.measure(desiredWidth, MeasureSpec.UNSPECIFIED);
totalHeight += view.getMeasuredHeight();
}
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
listView.setLayoutParams(params);
}
要使用此方法,只需将ListView
作为参数传递给上述函数。
ListView listView= (ListView)findViewById(R.id.listView);
setListViewHeightBasedOnChildren(listView);