在 ListView 中设置页脚布局时出现问题

Posted

技术标签:

【中文标题】在 ListView 中设置页脚布局时出现问题【英文标题】:Issue while setting Footer layout in ListView 【发布时间】:2018-05-08 06:52:36 【问题描述】:

下面是我的页脚布局,用于为我的 ListView 设置它:

  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_
    android:background="@color/gray_cell_bg">

    <TextView
        android:text="footer"
        android:layout_
        android:layout_ />
</RelativeLayout>

一切正常。但是,如果我想在我的 ListView 的页脚中设置一个带有某种背景颜色的空视图怎么办?

如果我按照以下方式进行操作,ListView 不会显示页脚视图。 :

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_
        android:layout_
        android:background="@color/gray_cell_bg">

    </RelativeLayout>

我将页脚设置如下:

View footerView = ((LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.footer_for_gym_list, null);
        listGymSuggestions.addFooterView(footerView);

请指导我如何在 ListView 中设置一些高度和背景颜色的空页脚?

【问题讨论】:

你可以用 View 代替 RelativeLayout ,如果不工作的话,它应该可以工作,让我知道。 您必须提供高度属性。没有任何孩子,您的 Layout 作为页脚将不会显示。 你知道@PragatiSingh 我给出了相同的答案5,但有人一直在投票,甚至没有说。我哪里做错了?? 现在他们已经删除了他们的反对票! 除此之外,我还拿了一个 SearchView。并且 onCLose() 方法没有调用..或者请。指南 按下 Android SearchView 的 X(close) 图标时如何触发关闭事件?注意:我知道如果我提出新问题会更好。 ;) 【参考方案1】:

View 存在,但没有height,因此您必须添加自己的高度值,可能是24dp 或其他内容,并将其设置为页脚,您甚至可以根据需要添加width。例如,在这里我添加了 24dp:

的高度
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_
    android:background="@color/gray_cell_bg">

</RelativeLayout>

【讨论】:

【参考方案2】:

如果该布局中没有子级,则不会显示。如果您在设置特定高度时遇到问题(当您动态添加子项时),您可以使用 padding 之类的,

android:padding="20dp"

【讨论】:

【参考方案3】:

我在其中一个布局中添加了一个按钮作为页脚。 这是我的代码。你可以添加任何你想要的东西。

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_>

<include
    android:id="@+id/search_toolbar"
    layout="@layout/search_toolbar" />

<LinearLayout
    android:layout_
    android:layout_
    android:gravity="center_horizontal">

    <ProgressBar
        android:id="@+id/indeterminateBar"
        android:layout_
        android:layout_
        android:layout_gravity="center" />
</LinearLayout>

<ListView
    android:id="@+id/listView"
    android:layout_
    android:layout_
    android:layout_above="@+id/emp_button"
    android:layout_below="@+id/search_toolbar" />

<TextView
    android:id="@+id/tvsample"
    android:layout_
    android:layout_
    android:layout_below="@id/search_toolbar"
    android:layout_marginTop="200dp"
    android:gravity="center_horizontal"
    android:textAppearance="@style/TextAppearance.AppCompat.Medium" />

<android.support.v7.widget.AppCompatImageButton
    android:id="@+id/emp_button"
    android:layout_
    android:layout_
    android:layout_alignParentBottom="true"
    android:background="@color/Red"
    android:src="@drawable/ic_add_employee"
    android:text="@string/emp_button"
    android:textSize="14sp" />

【讨论】:

【参考方案4】:

通过在页脚视图中添加 ImageView 解决了问题,如下所示:

footer.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_
    android:background="@color/gray_cell_bg">

    <ImageView
        android:layout_
        android:layout_
        android:scaleType="fitXY"
        android:src="@color/gray_cell_bg" />
</RelativeLayout>

【讨论】:

以上是关于在 ListView 中设置页脚布局时出现问题的主要内容,如果未能解决你的问题,请参考以下文章

在代码中设置自动布局约束时出现奇怪的问题

科研技巧简单的在Office Word 2019中设置页脚的页码从指定页(正文)开始

科研技巧简单的在Office Word 2019中设置页脚的页码从指定页(正文)开始

调用 ListView.addHeaderView() 时出现 ClassCastException?

当页脚位于其他 div 块内时出现粘滞页脚问题

向列表视图添加页脚时出现Indexoutofbound异常[重复]