是否可以在 GridView 的底部添加额外的空间(有点像空行)?
我想要它,所以当您向下滚动到 GridView 的底部时,会有额外的 50dp 空白空间。我尝试设置paddingBottom
为 50dp,但它似乎没有改变任何东西。
是否可以在 GridView 的底部添加额外的空间(有点像空行)?
我想要它,所以当您向下滚动到 GridView 的底部时,会有额外的 50dp 空白空间。我尝试设置paddingBottom
为 50dp,但它似乎没有改变任何东西。
如果我理解正确,它应该是这样的:
为此,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
您可以实现自己的 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"
使用 ListView 可以添加页脚,不幸的是 GridView 不支持它。我建议添加一个具有您想要的高度的空行是最干净的解决方案。
尝试将 paddingBottom 添加到其内部的容器中。列表视图上的 PaddingBottom 将不起作用,因为列表视图会将其添加到其最后一个元素之后,该元素不会出现在屏幕上。它有点假装它有无限的高度。
另一种解决方案是使用RelativeLayout 并推动一个具有固定高度但在底部和GridView 之间没有图形元素的视图,并将GridView 设置为该视图的layout_above。
尝试这样的事情:
<?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>
我在一个应用程序中使用它,其中LinearLayout
idlinlaProgressBar
用作ProgressBar
加载更多数据时的容器。
此示例显示 aGridView
但将其替换为 aListView
将获得相同的结果。