java - 可扩展的 ListView 导致布局问题

标签 java android xml eclipse expandablelistview

我的布局中有可扩展的 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

我这里有两个问题。首先,我不知道可扩展 ListView 在屏幕上到底有多大,并且当展开行时,我希望它们将其他布局元素向下推。可以这样做吗?

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

enter image description here

最佳答案

首先永远不要将[Expandable]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>

关于java - 可扩展的 ListView 导致布局问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18623188/

相关文章:

java - 使用 Java 字典...使用哈希表?

Java:分割逗号分隔的字符串但忽略引号中的逗号

c# - 基于 XPath 创建 XML 节点?

java - 首先按变量对数组排序,然后按降序排序

java - 单元测试断言 TreeMap 中的对象顺序正确?

android - Android Wear 卡片中的文字大小和颜色是多少

android - 在本地网络中推送通知

android - 删除 TextView 的背景

android - 读取和写入 XML 文件

java - 当 XML 中有更多字段时 xStream 崩溃