ListView下面的ListView(包含很多项)

时间:2014-10-06 20:27:50

标签: android android-fragments android-listview

我希望有一个包含两个片段的活动,一个包含listview(比屏幕高度更多的项目可以容纳),另一个包含另一个listview(只有几个元素)。片段A应该在片段B之上,但如果片段A中的列表视图滚动到末尾,片段B应该只是可见的。 例如:ListView1(片段A)包含20个项目(屏幕可以同时容纳6个项目),ListView2包含3个项目

Initial view            Scrolled down to end of ListView1

|----------------|      |-----------------|
| ListView1Item1 |      | ListView1Item19 |
| ListView1Item2 |      | ListView1Item20 |
| ListView1Item3 |      |                 |
| ListView1Item4 |      | ListView2Item1  |
| ListView1Item5 |      | ListView2Item2  |
| ListView1Item6 |      | ListView2Item3  |
|----------------|      |-----------------|


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:isScrollContainer="false"
        android:id="@+id/containerOverview"></FrameLayout>

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/containerKommentar"
        android:layout_below="@+id/containerOverview"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"></FrameLayout>

</RelativeLayout>

我以为我可以用ScrollView来做,但这只能容纳一个元素。

还有一些事情需要注意:我的两个片段都是以编程方式创建的,因为我需要将一些(动态)参数传递给它。

我希望你能理解我的问题并且有办法处理它。 谢谢

1 个答案:

答案 0 :(得分:0)

你将第一个listView高度设置为wrap_content,如果项目太长,那么它将占用屏幕,你可以做两件事:

1)使用LinearLayout并为每个listView设置权重,第二个listView可见性应该消失,你为第一个ListView设置onScrollListener并检查firstVisibleItem + visibleItemCount >= allItem然后你的列表是否结束现在你可以改变第二个listView的可见性为真。

2)不要使用linearLayout并执行与(1)相同的其他操作,但也要动态更改第一个listView的高度。