linearlayout dosn显示所有孩子

时间:2012-01-09 08:26:32

标签: android listview android-linearlayout

我在这个布局中遇到的问题是:它在listView之后没有显示任何子节点 列表视图正在填补这一景象;它滚动但没有显示任何其他孩子

我尝试过使用ScrollView,但它会产生扩展列表

的问题

这是布局xml代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/select_bg"
android:orientation="vertical" >

<TextView
    android:id="@+id/Header"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/header_bg"
    android:gravity="center"
    android:paddingRight="50dip"
    android:paddingTop="5dip"
    android:text="@string/select"
    android:textColor="#60240a"
    android:textSize="18dip"
    android:textStyle="bold" >
</TextView>

<ListView
    android:id="@+id/listView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:cacheColorHint="@android:color/transparent"
    android:divider="@drawable/line_divider"
    android:dividerHeight="3dip"
    android:listSelector="@android:color/transparent" >
</ListView>

<ImageView
    android:layout_width="fill_parent"
    android:layout_height="3dip"
    android:src="@drawable/line_divider" />

<ExpandableListView
    android:id="@+id/expandableList"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:cacheColorHint="@android:color/transparent"
    android:childDivider="@drawable/line_divider"
    android:divider="@drawable/line_divider"
    android:dividerHeight="2dip"
    android:listSelector="@android:color/transparent"
    android:textColor="#60240a" >
</ExpandableListView>
</LinearLayout>

谢谢

5 个答案:

答案 0 :(得分:1)

在布局中使用ListView时,您必须为列表视图添加此属性android:layout_weight。如果未设置此属性,则无法获取所有视图。

答案 1 :(得分:1)

由于您的布局是线性的,因此任何超出屏幕限制的视图都不会显示在屏幕上。是的scrollview使列表或可扩展列表视图出现问题,因为scrollview本身是可滚动的,它将使用listview和expandablelist的滚动。要解决此问题,您必须重新排序或更改布局,以使其余视图可见

答案 2 :(得分:0)

给第一个ListView一些恒定的高度。像

<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="300dip"
....
/>

LinearLayout在内容增加时不会滚动。并且您不能使用ScrollView作为ListView的父级。

答案 3 :(得分:0)

将所有layout_height - 属性从根布局的直接子项设置为fill_parent。 比给每个布局一个属性layout_weight。 layout_weight的值是一个整数,根据它们在视图中被授予的空间大小。 例如两个视图:一个具有权重2,一个具有权重1:权重1是权重2的两倍。 只需使用权重属性玩一下就能找到适合自己的东西。

答案 4 :(得分:0)

你已经将listview的高度设置为wrap_content,因此它将占据屏幕中的所有空间,因此你给listview的高度固定,同样的东西应用于可扩展列表也同样给出了修复高度。

希望你能得到最好的