0

有如下布局。两个 listView 并在其标题上带有图像和文本。底部有按钮。我的问题是,如果第一个列表视图是高度,其他列表视图和按钮不会出现。我想制作一个包含标题和 ListViews 的滚动视图,但没有用。我能怎么做?谢谢

  <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>
4

5 回答 5

2

ListView 是 android 中的可滚动视图,如果您想在单个屏幕上包含两个 Listview,您可以通过固定这些视图的父级高度来实现。例如,在下面的代码中,我已经固定了包含列表视图的线性布局的高度,您可以使用权重根据屏幕高度排列所有视图。

    <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

>
于 2012-12-06T05:49:24.670 回答
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
于 2012-12-06T05:51:57.333 回答
0

第二个列表视图没有出现的原因是您没有设置线性布局的方向。将其方向设置为垂直它会出现。

于 2012-12-06T05:57:07.923 回答
0

我不知道为什么您需要在一项活动中使用两个列表视图,但上面的代码只有在您不指定列表视图高度的情况下才有帮助。我相信您可以使用 MergeAdpter 制作更精美、更酷的列表视图,看看这里

于 2013-04-03T06:14:56.657 回答
0

我解决了我的问题如下:

我在列表视图的活动中使用了此代码:

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);

}

}

您可以在布局中将列表视图用于滚动视图。

于 2013-04-03T08:40:28.527 回答