簡體   English   中英

如何在布局中使用兩個listview?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM