有如下布局。两个listView和带有图像和文本的标题。底部有按钮。我的问题是,如果第一个列表视图是高度,则不会出现其他列表视图和按钮。我想制作一个包含标题和ListView的scrollview,但是没有用。 我能怎么做? 感谢
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:src="@drawable/icon" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:layout_marginLeft="5dp"
android:text="@string/Dep"
android:textColor="@color/white" />
</LinearLayout>
</LinearLayout>
<ListView
android:id="@+id/listView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</ListView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/Orange"
android:gravity="center"
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:src="@drawable/icon2" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textSize="18sp"
android:layout_marginLeft="5dp"
android:textColor="@color/white" />
</LinearLayout>
</LinearLayout>
<ListView
android:id="@+id/listView2"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</ListView>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center"
android:layout_margin="10dp" >
<Button
android:id="@+id/btn1"
android:layout_width="0dp"
android:layout_height="55dp"
android:layout_margin="5dp"
android:layout_weight=".3"
android:gravity="bottom|center_horizontal"
android:textSize="16sp"
android:textStyle="bold" />
<Button
android:id="@+id/btn2"
android:layout_width="0dp"
android:layout_height="55dp"
android:layout_margin="5dp"
android:layout_weight=".7"
android:text="@string/Continue"
android:textColor="@color/white"
android:textSize="24sp"
android:textStyle="bold" />
</LinearLayout>
答案 0 :(得分:2)
ListView是android中的可滚动视图,如果要在单个屏幕上包含两个Listviews,可以通过修复这些视图的父级高度来完成。例如,在下面的代码中,我修复了包含listviews的linearlayout的高度,你可以使用权重来根据屏幕高度排列所有视图。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:src="@drawable/icon" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:layout_marginLeft="5dp"
android:text="@string/Dep"
android:textColor="@color/white" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="100dip"
>
<ListView
android:id="@+id/listView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</ListView>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/Orange"
android:gravity="center"
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:src="@drawable/icon2" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textSize="18sp"
android:layout_marginLeft="5dp"
android:textColor="@color/white" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="100dip"
>
<ListView
android:id="@+id/listView2"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</ListView>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center"
android:layout_margin="10dp" >
<Button
android:id="@+id/btn1"
android:layout_width="0dp"
android:layout_height="55dp"
android:layout_margin="5dp"
android:layout_weight=".3"
android:gravity="bottom|center_horizontal"
android:textSize="16sp"
android:textStyle="bold" />
<Button
android:id="@+id/btn2"
android:layout_width="0dp"
android:layout_height="55dp"
android:layout_margin="5dp"
android:layout_weight=".7"
android:text="@string/Continue"
android:textColor="@color/white"
android:textSize="24sp"
android:textStyle="bold" />
</LinearLayout
>
答案 1 :(得分:0)
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginBottom="10dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp" >
<ListView
android:id="@+id/lst_payment"
android:layout_width="fill_parent"
android:layout_height="100dp"
android:layout_alignParentLeft="true"
android:layout_marginTop="5dp"
android:scrollbars="none" >
</ListView>
<ListView
android:id="@+id/lst_bank"
android:layout_width="fill_parent"
android:layout_height="100dp"
android:layout_below="@+id/lst_payment"
android:layout_marginTop="5dp"
android:fadingEdge="none"
android:scrollbars="none" >
</ListView>
</RelativeLayout
答案 2 :(得分:0)
未显示第二个列表视图的原因是您尚未设置“线性”布局的方向。将其方向设置为垂直,它将出现。
答案 3 :(得分:0)
我不知道你为什么在一个活动中需要两个列表视图,但上面的代码只有在你没有指定listview高度时才有帮助。我相信你可以使用MergeAdpter take a look here
制作一个更加华丽和酷炫的列表视图答案 4 :(得分:0)
我解决了我的问题如下:
我在listview的活动中使用了这段代码:
HelperScrollView.getListViewSize(listview);
这是班级:
public class HelperScrollView
{
public static void getListViewSize(ListView myListView) {
ListAdapter myListAdapter = myListView.getAdapter();
if (myListAdapter == null) {
//do nothing return null
return;
}
//set listAdapter in loop for getting final size
int totalHeight = 0;
for (int size = 0; size < myListAdapter.getCount(); size++) {
View listItem = myListAdapter.getView(size, null, myListView);
listItem.measure(0, 0);
totalHeight += listItem.getMeasuredHeight();
}
//setting listview item in adapter
ViewGroup.LayoutParams params = myListView.getLayoutParams();
params.height = totalHeight + (myListView.getDividerHeight() * (myListAdapter.getCount()));
myListView.setLayoutParams(params);
}
}
您可以将listview用于布局中的scrollview。