在RelativeLayout上使用包含ExpandableListView的ScrollView

时间:2011-10-13 10:34:18

标签: android scrollview relativelayout expandablelistview

我使用的是RelativeLayout

<?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <Button
            android:layout_width="wrap_content"
            android:id="@+id/screen_team_enableproximity"
            android:text="Enable proximity"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/screen_team_checkboxproximity"
            android:layout_alignBottom="@+id/screen_team_checkboxproximity"
            android:layout_alignParentLeft="true"
            android:layout_toLeftOf="@+id/screen_team_checkboxproximity"></Button>
        <CheckBox
            android:layout_width="wrap_content"
            android:id="@+id/screen_team_checkboxproximity"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_alignParentRight="true"
            android:clickable="false"></CheckBox>
        <ExpandableListView
            android:layout_width="match_parent"
            android:id="@+id/screen_team_teamslist"
            android:layout_height="match_parent"
            android:layout_below="@+id/screen_team_availableteams"
            android:layout_centerHorizontal="true"></ExpandableListView>
        <TextView
            android:layout_width="wrap_content"
            android:id="@+id/screen_team_availableteams"
            android:text="Available Teams"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:layout_below="@+id/screen_team_getallteams"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="10dp"></TextView>
        <Button
            android:text="Create Team"
            android:id="@+id/screen_team_createteam"
            android:layout_height="wrap_content"
            android:layout_below="@+id/screen_team_enableproximity"
            android:layout_width="match_parent"
            android:layout_marginTop="65dip"></Button>
        <Button
            android:text="Delete Team"
            android:id="@+id/screen_team_deleteteam"
            android:layout_height="wrap_content"
            android:layout_below="@+id/screen_team_createteam"
            android:layout_centerHorizontal="true"
            android:layout_width="match_parent"></Button>
        <Button
            android:layout_width="match_parent"
            android:text="Get available teams"
            android:id="@+id/screen_team_getallteams"
            android:layout_height="wrap_content"
            android:layout_below="@+id/screen_team_deleteteam"
            android:layout_alignParentLeft="true"></Button>
    </RelativeLayout>

问题是我想在ScrollView或类似的内部使用它 - 整个布局不适合屏幕,特别是当你向ExpandableListView添加几个组时。

我已经尝试将RelativeLayout放在ScrollView内,但它根本不起作用。

如何设置包含RelativeLayout的滚动屏幕?

3 个答案:

答案 0 :(得分:4)

将所有视图放在expandable listView上方作为listView标题,将下面的所有视图放在listView页脚中。然后,您已为所有内容启用了滚动功能。

答案 1 :(得分:0)

这是一个棘手的问题。关于如何将ScrollView与ListView一起使用,这里有几个讨论。看看这个问题:Scrolling with Multiple ListViews for Android。我们的想法是只有一个列表(创建自定义适配器)并在Expandable列表之前和之后添加页眉和页脚。

答案 2 :(得分:0)

除了页眉/页脚方法之外,如果你要在expandableList之前定义所有视图并给它相对位置(layout_above / layout_below),你将获得所需的视图。