可展开的ListView导致布局问题

时间:2013-09-04 20:29:00

标签: java android xml eclipse expandablelistview

我的布局中有Expandable ListView和很多其他元素。这是xml代码:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true" >

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >

<ExpandableListView
    android:id="@+id/lvExp"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_above="@+id/dayTime"
    android:layout_below="@+id/imageView2" />

<ImageView
    android:id="@+id/imageView2"
    android:layout_width="wrap_content"
    android:layout_height="30dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/imageView3"
    android:background="@drawable/day_time_color" />

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/imageView2"
    android:layout_alignParentLeft="true"
    android:layout_marginLeft="26dp"
    android:text="Izberi Letnik" />

<ImageView
    android:id="@+id/imageView3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:background="@drawable/header_logo" />

<ImageView
    android:id="@+id/dayTime"
    android:layout_width="wrap_content"
    android:layout_height="80dp"
    android:layout_above="@+id/socialMedia"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:background="@drawable/day_time_color" />

<ImageView
    android:id="@+id/socialMedia"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/kontakt"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:background="@drawable/social_media_color" />

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:background="@drawable/light_blue" />

<ImageView
    android:id="@+id/kontakt"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/imageView1"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:background="@drawable/kontakt_color" />

<TextView
    android:id="@+id/textView3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/textView2"
    android:layout_alignBottom="@+id/textView2"
    android:layout_toRightOf="@+id/textView2"
    android:text="- URNIKI"
    android:textColor="#42BDCF" />

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/textView1"
    android:layout_alignParentTop="true"
    android:layout_marginLeft="44dp"
    android:layout_marginTop="20dp"
    android:text="STPŠ TRBOVLJE "
    android:textColor="#8AAB28" />

<TextView
    android:id="@+id/textView5"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/textView4"
    android:layout_alignBottom="@+id/textView4"
    android:layout_toRightOf="@+id/textView4"
    android:text="PONEDELJEK*"
    android:textColor="#acc84d"
    android:textSize="18dp" />

<TextView
    android:id="@+id/textView6"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/textView5"
    android:layout_alignBottom="@+id/textView5"
    android:layout_toLeftOf="@+id/textView7"
    android:text="ČAS: " />

<TextView
    android:id="@+id/textView7"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/textView6"
    android:layout_alignBottom="@+id/textView6"
    android:layout_alignParentRight="true"
    android:layout_marginRight="35dp"
    android:text="14:25*"
    android:textColor="#acc84d"
    android:textSize="18dp" />

<TextView
    android:id="@+id/textView4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/dayTime"
    android:layout_alignParentLeft="true"
    android:layout_marginBottom="13dp"
    android:layout_marginLeft="15dp"
    android:text="DANES: "
    android:textColor="#5e5e60" />

这是预览中的样子:

enter image description here

我这里有两个问题。首先,我不知道Expandable ListView在屏幕上的确切程度有多大,当行扩展时,我希望它们将其他布局元素向下推。有可能吗?

第二个问题是scrollview。如果我尝试更改高度以便我可以在布局中放置更多元素并使其可滚动,则会发生这种情况:

enter image description here

1 个答案:

答案 0 :(得分:2)

首先永远不要将[可扩展] ListView放入ScrollableView!

其次,ExpandableListViewListView都可以为您提供添加页眉或页脚的功能,而且看起来就像您需要的那样

这是一个可以为您提供更多信息的链接:How to add a footer in ListView?

不幸的是(至于现在)它是impossible to add Footers or Headers in XML,所以你必须要 用Java做。

编辑(示例布局)

expandable_list.xml:

<ExpandableListView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/lvExp"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

expandable_list_footer.xml:

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

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="wrap_content"
        android:layout_height="30dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@id/imageView3"
        android:background="@drawable/day_time_color" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@id/imageView2"
        android:layout_alignParentLeft="true"
        android:layout_marginLeft="26dp"
        android:text="Izberi Letnik" />

    <ImageView
        android:id="@+id/imageView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:background="@drawable/header_logo" />

    <ImageView
        android:id="@+id/dayTime"
        android:layout_width="wrap_content"
        android:layout_height="80dp"
        android:layout_above="@id/socialMedia"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:background="@drawable/day_time_color" />

    <ImageView
        android:id="@+id/socialMedia"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@id/kontakt"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:background="@drawable/social_media_color" />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:background="@drawable/light_blue" />

    <ImageView
        android:id="@+id/kontakt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@id/imageView1"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:background="@drawable/kontakt_color" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@id/textView2"
        android:layout_alignBottom="@id/textView2"
        android:layout_toRightOf="@id/textView2"
        android:text="- URNIKI"
        android:textColor="#42BDCF" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@id/textView1"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="44dp"
        android:layout_marginTop="20dp"
        android:text="STPŠ TRBOVLJE "
        android:textColor="#8AAB28" />

    <TextView
        android:id="@+id/textView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@id/textView4"
        android:layout_alignBottom="@id/textView4"
        android:layout_toRightOf="@id/textView4"
        android:text="PONEDELJEK*"
        android:textColor="#acc84d"
        android:textSize="18dp" />

    <TextView
        android:id="@+id/textView6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@id/textView5"
        android:layout_alignBottom="@id/textView5"
        android:layout_toLeftOf="@id/textView7"
        android:text="ČAS: " />

    <TextView
        android:id="@+id/textView7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@id/textView6"
        android:layout_alignBottom="@id/textView6"
        android:layout_alignParentRight="true"
        android:layout_marginRight="35dp"
        android:text="14:25*"
        android:textColor="#acc84d"
        android:textSize="18dp" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@id/dayTime"
        android:layout_alignParentLeft="true"
        android:layout_marginBottom="13dp"
        android:layout_marginLeft="15dp"
        android:text="DANES: "
        android:textColor="#5e5e60" />

</RelativeLayout>