5

是否可以在 GridView 的底部添加额外的空间(有点像空行)?

我想要它,所以当您向下滚动到 GridView 的底部时,会有额外的 50dp 空白空间。我尝试设置paddingBottom为 50dp,但它似乎没有改变任何东西。

4

5 回答 5

12

如果我理解正确,它应该是这样的:

为此,Maciej 在这里提到了一个简单的解决方案:如何在 GridView 的底部添加额外的空间

您只需要在 GridView 布局中添加以下内容:

<GridView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="50dp"
android:clipToPadding="false"/>

最重要的部分是必须设置为 false 的 clipToPadding 属性。

您还可以查看来自 Google 的相应博客文章,其中提到了此解决方案:https: //plus.google.com/+AndroidDevelopers/posts/LpAA7q4jw9M

于 2014-09-12T07:19:11.810 回答
1

您可以实现自己的 GridViewAdapter 扩展 ArrayAdapter 并且:

@Override
public int getCount() {
    return gridArray.size();
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    //...
    if (getCount()-1 == position) {
        convertView.setPadding(0, 0, 0, 50);
    } else {
        convertView.setPadding(0, 0, 0, 0);;
    }
    return convertView;
}

其中 50 是以像素为单位的底部填充,请参阅 View.setPadding(int, int, int, int)

你 GridItemView 布局桅杆是 android:layout_height="wrap_content"

于 2013-09-26T07:58:22.073 回答
0

使用 ListView 可以添加页脚,不幸的是 GridView 不支持它。我建议添加一个具有您想要的高度的空行是最干净的解决方案。

于 2013-04-12T04:55:27.903 回答
0

尝试将 paddingBottom 添加到其内部的容器中。列表视图上的 PaddingBottom 将不起作用,因为列表视图会将其添加到其最后一个元素之后,该元素不会出现在屏幕上。它有点假装它有无限的高度。

另一种解决方案是使用RelativeLayout 并推动一个具有固定高度但在底部和GridView 之间没有图形元素的视图,并将GridView 设置为该视图的layout_above。

于 2013-04-12T03:50:37.923 回答
0

尝试这样的事情:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:layout_weight="1"
        android:orientation="vertical" >

        <GridView
            android:id="@+id/gridUsers"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:clipChildren="true"
            android:columnWidth="100dp"
            android:fastScrollEnabled="true"
            android:gravity="center"
            android:numColumns="auto_fit"
            android:scrollbars="none"
            android:stretchMode="columnWidth" >
        </GridView>

        <TextView
            android:id="@android:id/empty"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:gravity="center"
            android:padding="10dp"
            android:textColor="#f1f1f1"
            android:textSize="15sp"
            android:textStyle="bold"
            android:visibility="gone" >
        </TextView>
    </LinearLayout>

    <LinearLayout
        android:id="@+id/linlaProgressBar"
        android:layout_width="fill_parent"
        android:layout_height="50dp"
        android:gravity="center"
        android:orientation="horizontal" >
    </LinearLayout>

</LinearLayout>

我在一个应用程序中使用它,其中LinearLayoutidlinlaProgressBar用作ProgressBar加载更多数据时的容器。

此示例显示 aGridView但将其替换为 aListView将获得相同的结果。

于 2013-04-12T03:51:25.333 回答