Android:嵌套列表视图和项高度

时间:2011-11-16 16:56:04

标签: android listview nested

我目前正在尝试创建一个嵌套的ListView。

外部ListView包含项目,每个项目包含一个TextView,作为标题,另一个包含子项的ListView。

使用另一个嵌套的ListView适配器填充ListViews非常好用,但是,当涉及在设备上实际显示内容时,嵌套列表项不够高,无法显示所有子项。确切地说,只显示第一个嵌套列表项。

我目前的布局方法如下:

外单项目:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content"
              android:orientation="vertical"
              android:padding="5px"
        >

    <TextView android:id="@+id/day"
              android:textSize="14sp"
              android:textStyle="bold"
              android:textColor="#ff5e00"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:scrollHorizontally="false"/>


    <ListView android:id="@+id/innerList"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:fadingEdge="none"
            />
</LinearLayout>

和内部列表布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content"
              android:orientation="vertical"
              android:padding="5px"
        >

    <TextView  android:id="@+id/innertextview"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:scrollHorizontally="false"
               android:singleLine="false"/>
</LinearLayout>

是否有机会以所有内部列表项目的显示方式调整外部列表项的大小?

我还查看了ExpandableListViews。这种方法有效,但我不希望列表项崩溃。

非常感谢, 的Matthias

2 个答案:

答案 0 :(得分:1)

我真的不喜欢这个解决方案,所以我更多地研究了这个问题并找到了另一个解决方案:

ExpandableListView继承自ListView。它的作用是覆盖BaseAdapter中的getView方法,并区分子项和父项。它不是一个真正的嵌套列表,但它通过使用不同的布局项来展平列表。

创建NestedListView也可以这样做。从ListView继承并期望自己创建的适配器,它可以区分子布局项和父布局项。 对于每一个返回适当填充的布局项。

完成。

答案 1 :(得分:0)

您应该能够使ExpandableListView中的项目不可合并。这可能是你最好的选择。有关如何停用折叠的说明,请查看此SO Post