我已经看到了很多与我有关的问题,然而,这些都没有奏效。我目前正在设计一个视图,其中我在ScrollView中有四个ListView,我想制作整个ScrollView滚动,同时显示ListViews中的所有项目。那没问题;但是,列表视图会不同地重叠我的headertexts以用于不同的列表视图。
我尝试过边距和填充;没有人工作。我还尝试将scrollLayout重新制作为LinearLayout。我还尝试将文本放在单独的LinearLayouts中,与ListView分开,但这也不起作用。
下面是我的src代码。有谁知道如何使文本与listViews中的Top项不重叠?顺便说一句,“最佳结果”,上面的那个,完全没问题。
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/scrollView"
android:layout_alignParentTop="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/scrollLayout">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:id="@+id/topResultLayout">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/topResultTitle"
android:textSize="20sp"
android:textIsSelectable="false"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:textColor="#000000" />
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/topResultList"
android:layout_below="@id/topResultTitle"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:id="@+id/streamResultLayout"
android:layout_below="@id/topResultLayout">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/streamResultTitle"
android:textSize="20sp"
android:textIsSelectable="false"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:textColor="#000000" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/seeAllStreams"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:textColor="#000000"
android:textSize="14sp"
android:layout_above="@+id/streamResultList" />
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/streamResultList"
android:layout_below="@id/streamResultTitle"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:id="@+id/broadcasterResultLayout"
android:layout_below="@id/streamResultLayout">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/broadcasterResultTitle"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:textSize="20sp"
android:textIsSelectable="false"
android:textColor="#000000" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/seeAllBroadcasters"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:textColor="#000000"
android:textSize="14sp" />
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/broadcasterResultList"
android:layout_below="@id/broadcasterResultTitle"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:id="@+id/tagResultLayout"
android:layout_below="@id/broadcasterResultLayout"
android:layout_alignParentBottom="true">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tagResultTitle"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:textSize="20sp"
android:textIsSelectable="false"
android:textColor="#000000" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/seeAllTags"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:textColor="#000000"
android:textSize="14sp" />
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tagResultList"
android:layout_below="@id/tagResultTitle"/>
</RelativeLayout>
</RelativeLayout>
</ScrollView>
答案 0 :(得分:1)
public static void setListViewHeightBasedOnChildren(ListView listView, ListAdapter adapter)
{
ListAdapter listAdapter = adapter;
if (listAdapter == null) {
return;
}
int desiredWidth = View.MeasureSpec.makeMeasureSpec(listView.getWidth(), View.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, ViewGroup.LayoutParams.WRAP_CONTENT));
}
view.measure(desiredWidth, View.MeasureSpec.UNSPECIFIED);
totalHeight += view.getMeasuredHeight();
}
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight;
listView.setLayoutParams(params);
listView.requestLayout();
}