0

我正在开发一个 Android 应用程序,我有一个看起来像这样的 Activity 。我有一个具有固定位置的页眉和一个页脚,以及一个中间有可点击项目的 ListView。在 ListView 下方,我有一个按钮。

当我有一些项目时它正在工作,但是当我添加更多项目时,按钮开始消失,就像这样

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

在尝试在 ScrollView 中添加 ListView 之前,我遇到了很多问题,所以我知道它不起作用。由于我是 Android 开发新手,也许我的 XML 布局文件有点混乱,但我有一个父 LinearLayout,里面有两个 RelativeLayout,一个用于页眉,一个用于中间和页脚。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

4 回答 4

1

和应该在ListView你应该设置的按钮中 ButtonRelativeLayoutandroid: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>
于 2012-11-29T19:53:17.210 回答
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>
于 2012-11-30T12:35:15.283 回答
1

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

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

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

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

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

于 2012-12-03T20:37:04.433 回答
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>
于 2012-11-30T05:48:09.300 回答