使用1个LinearLayout中的2个ListView设置ListView高度

时间:2013-04-24 21:57:03

标签: android android-layout android-listview

这是我的layout文件:

<com.handmark.pulltorefresh.library.PullToRefreshScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/pull_to_refresh_scrollview_feat"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <ListView
            android:id="@+id/listViewFriends"
            android:layout_width="match_parent"
            android:layout_height="1100dp" >
        </ListView>

        <ListView
            android:id="@+id/listViewTrending"
            android:layout_width="match_parent"
            android:layout_height="1100dp" >
        </ListView>
    </LinearLayout>

</com.handmark.pulltorefresh.library.PullToRefreshScrollView>

出于某种原因,同时显示ListViews的唯一方法是在实际dp中设置身高。我无法使用wrap_contentlayout_weights

这是使用多个ListViews的限制吗?或者我做错了吗?

3 个答案:

答案 0 :(得分:1)

我简单地废弃了这个想法并使用了MergeAdapter并得到了我想要的东西。

答案 1 :(得分:0)

我认为PullToRefreshScrollView是某种ScrollView。您不应在ListView内使用ScrollView;他们只是不能很好地在一起。您不仅必须为列表设置明确的布局高度,而且两个视图将在处理触摸事件时彼此相互接触。

如果将LinearLayout提升到容器层次结构的顶部,则可以为每个ListView设置以下属性:

. . .
android:layout_height="0dp"
android:layout_weight="1"
. . .

然后它们应该占据相同的垂直空间。

答案 2 :(得分:0)

我还没试过,但是你可以将layout_height = 0dp和layout_weight = 1设置为ListViews,看看会发生什么?

希望它有所帮助。