[英]How can I use two listview in a layout?
布局如下。 兩個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>
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
>
通過這種方式你可以使用兩個listview ...
<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
沒有出現第二個列表視圖的原因是您沒有設置線性布局的方向。 將其方向設置為垂直,它將出現。
我不知道你為什么在一個活動中需要兩個列表視圖,但上面的代碼只有在你沒有指定listview高度時才有幫助。 我相信你可以使用MergeAdpter 來制作一個更加華麗和酷炫的列表視圖
我解決了我的問題如下:
我在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。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.