带有固定页眉和页脚的Activity底部带有按钮的ListView

时间:2012-11-29 19:42:29

标签: android android-layout android-listview android-activity android-button

我正在开发一个Android应用程序,我的活动看起来像this。我有一个具有固定位置的页眉和页脚,以及一个带有可点击项目的ListView。在ListView下面,我有一个按钮。

当我有一些项目时,它正在工作,但随着我添加更多项目,按钮开始消失,如this

当我在该列表中有更多可以在页面中显示的项目时,我在列表中有一个滚动条。如果我向下滚动like this,我可以看到列表中的所有项目,但按钮是隐藏的。

在尝试在ScrollView中添加ListView之前我遇到了很多问题,所以我知道它不起作用。由于我是Android开发的新手,也许我的XML布局文件有点令人困惑,但我有一个内部有两个RelativeLayouts的父LinearLayout,一个用于标题,一个用于中间和页脚。 XML是这样的:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="match_parent" 
    android:orientation="vertical"
    android:background="#FFFFFF">

    <RelativeLayout 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" 
        android:orientation="horizontal"
        android:background="@drawable/background"
        android:gravity="center_vertical">

        <TextView
            android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="5dp"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="5dp"
            android:text="@string/baseTitle"
            android:textColor="#FFFFFF"
            android:layout_centerVertical="true"
            android:textSize="18dp"
            android:textStyle="bold"/>

        <Button 
            android:id="@+id/buttonHelp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:background="@drawable/button_help"
            android:layout_centerVertical="true"
            android:layout_alignParentRight="true"/>

    </RelativeLayout>

    <RelativeLayout 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_gravity="fill_vertical">

        <LinearLayout   
            android:id="@+id/buttonBar"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:gravity="center"
            android:background="#bdbdbd"
            android:layout_alignParentBottom="true">

            <RelativeLayout   
                android:id="@+id/bottomButtomBar"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_marginTop="5dp"
                android:layout_marginBottom="5dp"
                android:orientation="horizontal">
                <Button 
                    android:id="@+id/myGroups"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="15dp"
                    android:layout_alignParentLeft="true"
                    android:layout_centerVertical="true"
                    android:text="@string/myGroups"
                    android:gravity="center"
                    android:textSize="13dp"
                    android:textColor="#000000"
                    android:background="@layout/button_meus_grupos"/>
                <Button 
                    android:id="@+id/createGroups"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_centerInParent="true"
                    android:text="@string/createGroups"
                    android:gravity="center"
                    android:textSize="13dp"
                    android:textColor="#000000"
                    android:background="@layout/button_criar_grupos"/>
                <Button 
                    android:id="@+id/configurations"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="15dp"
                    android:layout_alignParentRight="true"
                    android:layout_centerVertical="true"
                    android:text="@string/configurations"
                    android:gravity="center"
                    android:textSize="13dp"
                    android:textColor="#000000"
                    android:background="@layout/button_configuracoes"/>
            </RelativeLayout>
        </LinearLayout>
        <LinearLayout 
            android:layout_above="@id/buttonBar"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical" >
            <LinearLayout 
                    android:id="@+id/listContent"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical" >
                    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:background="#ffffff" 
                        android:orientation="vertical"
                    >
                        <RelativeLayout
                            android:id="@+id/searchBarLayout"
                            android:layout_width="fill_parent" 
                            android:layout_height="48dp"
                            android:orientation="horizontal"
                            android:background="#ffffff"
                            android:gravity="center_vertical"
                            android:clickable="true"
                        >
                            <TextView
                                android:id="@+id/myGroupsLabel"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text="@string/myGroups"
                                android:layout_centerInParent="true"
                                android:textColor="#bdbdbd"
                                android:textSize="16dp"
                                android:textStyle="bold"
                            />
                            <ImageView
                                android:layout_alignParentRight="true"
                                android:layout_centerVertical="true"
                                android:layout_marginRight="15dp"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:background="@drawable/ic_search" />
                        </RelativeLayout>
                        <View android:layout_height="2dip" 
                            android:layout_width="wrap_content" 
                            android:background="#cccccc"  
                        />        
                        <ListView android:id="@+id/listview"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:textColor="#000000"
                            android:cacheColorHint="#000000"
                        />
                        <Button
                            android:id="@+id/buttonCreateGroup"
                            android:layout_width="200dp"
                            android:layout_height="wrap_content"
                            android:layout_marginBottom="20dp"
                            android:background="@layout/button_confirm"
                            android:layout_gravity="center_horizontal"
                            android:text="@string/createOneGroup"
                            android:textColor="#FFFFFF"
                            android:textSize="22dp"
                            android:layout_marginTop="15dp"
                        />
                    </LinearLayout>
            </LinearLayout>
        </LinearLayout>
    </RelativeLayout>
</LinearLayout>

有没有人有关于如何保持页脚固定的提示,向下滚动直到列表的末尾然后显示按钮?我希望看起来按钮是列表中的最后一项。

编辑:发布整个XML

4 个答案:

答案 0 :(得分:1)

ListViewButton应位于RelativeLayout,而按钮则应设为android:layout_below="@id/listview"

<RelativeLayout 
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">

<ListView
    android:id="@+id/listview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:cacheColorHint="#000000"
    android:textColor="#000000" />

<Button
    android:layout_below="@id/listview"
    android:id="@+id/buttonCreateGroup"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_marginBottom="20dp"
    android:layout_marginTop="15dp"
    android:background="@layout/button_confirm"
    android:text="@string/createOneGroup"
    android:textColor="#FFFFFF"
    android:textSize="22dp" />

</RelativeLayout>

答案 1 :(得分:1)

以下列方式尝试:

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <RelativeLayout                               //Header
       android:layout_alignParentTop="true">     
    </RelativeLayout> 

      <ListView 
         android:layout_below="@+id/header" />

    <RelativeLayout                               //Button(footer)
       android:layout_alignParentBottom="true"
       android:layout_below="@+id/listView" >      
    </RelativeLayout>  

</RelativeLayout>

答案 2 :(得分:1)

我能够达到上面解释的确切要求的唯一方法是执行以下操作:

- 在包含列表项布局的XML文件中,我添加了一个带有android:visibility="gone"的按钮。

- 在我的自定义ListView适配器中,我总是在最后一个位置添加一个空对象。我只需添加一个带有标志的对象,该标志显示它是列表中的最后一个。

- 在我在自定义适配器中覆盖的方法getView()中,我检查当前位置中的对象是否具有指示它是列表中最后一个的标志。如果是这样,我将按钮可见性设置为VISIBLE,否则我填充其他组件。

如果有人遇到同样的问题,需要我的解决方案中的一些示例代码,请在此处询问。

答案 3 :(得分:0)

试试这个:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginBottom="5dp"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="5dp"
            android:text="baseTitle"
            android:textColor="#FFFFFF"
            android:textSize="18dp"
            android:textStyle="bold" />

        <Button
            android:id="@+id/buttonHelp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:layout_gravity="center_vertical" />
    </RelativeLayout>

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="fill_vertical"
        android:orientation="vertical" >

        <LinearLayout
            android:id="@+id/buttonBar"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:gravity="center"
            android:orientation="vertical" >

            <RelativeLayout
                android:id="@+id/bottomButtomBar"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_marginBottom="5dp"
                android:layout_marginTop="5dp"
                android:orientation="horizontal" >

                <Button
                    android:id="@+id/myGroups"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_centerVertical="true"
                    android:layout_marginLeft="15dp"
                    android:gravity="center"
                    android:text="myGroups"
                    android:textColor="#000000"
                    android:textSize="13dp" />

                <Button
                    android:id="@+id/createGroups"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerInParent="true"
                    android:layout_gravity="center"
                    android:gravity="center"
                    android:text="createGroups"
                    android:textColor="#000000"
                    android:textSize="13dp" />

                <Button
                    android:id="@+id/configurations"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentRight="true"
                    android:layout_centerVertical="true"
                    android:layout_marginRight="15dp"
                    android:gravity="center"
                    android:text="configurations"
                    android:textColor="#000000"
                    android:textSize="13dp" >
                </Button>
            </RelativeLayout>
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_above="@id/buttonBar"
            android:orientation="vertical" >

            <LinearLayout
                android:id="@+id/listContent"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical" >

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

                    <RelativeLayout
                        android:id="@+id/searchBarLayout"
                        android:layout_width="fill_parent"
                        android:layout_height="48dp"
                        android:clickable="true"
                        android:gravity="center_vertical"
                        android:orientation="horizontal" >

                        <TextView
                            android:id="@+id/myGroupsLabel"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_centerInParent="true"
                            android:text="myGroups"
                            android:textColor="#bdbdbd"
                            android:textSize="16dp"
                            android:textStyle="bold" />

                        <ImageView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_alignParentRight="true"
                            android:layout_centerVertical="true"
                            android:layout_marginRight="15dp" >
                        </ImageView>
                    </RelativeLayout>

                    <ScrollView
                        android:id="@+id/scroll"
                        android:layout_width="fill_parent"
                        android:layout_height="280dip"
                        android:layout_margin="7dip"
                        android:scrollbars="none" >

                        <LinearLayout
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:orientation="vertical" >

                            <ListView
                                android:id="@+id/listview"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:cacheColorHint="#000000"
                                android:textColor="#000000" />

                            <Button
                                android:id="@+id/buttonCreateGroup"
                                android:layout_width="200dp"
                                android:layout_height="wrap_content"
                                android:layout_gravity="center_horizontal"
                                android:layout_marginBottom="20dp"
                                android:layout_marginTop="15dp"
                                android:text="createOneGroup"
                                android:textColor="#FFFFFF"
                                android:textSize="22dp" />
                        </LinearLayout>
                    </ScrollView>
                </LinearLayout>
            </LinearLayout>
        </LinearLayout>
    </RelativeLayout>

</LinearLayout>