是否可以在GridView的底部添加额外的空间(有点像空行)?
我想这样,当你向下滚动到GridView的底部时,会有额外的50dp的空白空间。我尝试将paddingBottom
设置为50dp,但似乎没有任何改变。
答案 0 :(得分:11)
如果我理解你的话,它应该是这样的:
为此,Maciej提到了一个简单的解决方案:How to add extra space inside at the bottom of a GridView
您只需在GridView布局中添加以下内容:
<GridView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="50dp"
android:clipToPadding="false"/>
最重要的部分是clipToPadding属性,必须将其设置为false。
您还可以查看Google提供的相应博客文章,其中提到了此解决方案:https://plus.google.com/+AndroidDevelopers/posts/LpAA7q4jw9M
答案 1 :(得分: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是底部填充,以像素为see View.setPadding(int, int, int, int)
你GridItemView布局桅杆 的机器人:layout_height = “WRAP_CONTENT”强>
答案 2 :(得分:0)
尝试将paddingBottom添加到其内部的容器中。 listview上的PaddingBottom将无法工作,因为listview会在最后一个元素之后添加它,而不会在屏幕上。有点假装它有无限的高度。
另一个解决方案是使用RelativeLayout并使用固定高度推送视图,但在底部和GridView之间没有图形元素,GridView设置为layout_above该视图。
答案 3 :(得分: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>
我在应用中使用此功能,其中LinearLayout
的ID为linlaProgressBar
的{{1}}在加载更多数据时用作ProgressBar
的容器。
此示例显示GridView
,但用ListView
替换它将获得相同的结果。
答案 4 :(得分:0)
使用ListView,你会添加一个页脚,遗憾的是在GridView中不支持它。我建议添加一个具有所需高度的空行是最干净的解决方案。