我想在GridView的顶部和底部添加空格,类似于页眉/页脚,但我只想支持空格而不是其他内容。
目前我正在使用顶部/底部填充,但滚动时,内容将在填充部分中被裁剪。
对此最简单的解决方案是什么?谢谢!
答案 0 :(得分:121)
如果我理解你的话,它应该是这样的:
为此,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:paddingTop="50dp"
android:paddingBottom="50dp"
android:clipToPadding="false"/>
最重要的部分是clipToPadding属性,必须将其设置为false。
您还可以查看Google提供的相应博客文章,其中提到了此解决方案:https://plus.google.com/+AndroidDevelopers/posts/LpAA7q4jw9M
答案 1 :(得分:3)
不使用填充(在视图中添加空间 ),而是使用边距(添加空间 ouside 你的观点):
添加
android:layout_marginTop="40dp"
android:layout_marginBottom="40dp"
到你的GridView(或一些不同的值)
<强> [编辑] 强>
根据OP的澄清:&#34;空格&#34;必须是FIXED并且所有GridView都可滚动 因此,我设计它(通过设置一对锚定的TextViews作为固定的页眉和页脚):
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black"
android:padding="8dp"
>
<!-- Header -->
<TextView
android:id="@+id/txtHeader"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_alignParentTop="true"
android:background="#ff00"
android:gravity="center"
android:text="Header"
android:textColor="@android:color/white"
android:textSize="24sp"
android:textStyle="bold"
/>
<!-- Footer -->
<TextView
android:id="@+id/txtFooter"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_alignParentBottom="true"
android:background="#ff00"
android:gravity="center"
android:text="Footer"
android:textColor="@android:color/white"
android:textSize="24sp"
android:textStyle="bold"
/>
<!-- The Grid -->
<!-- <GridView -->
<!-- android:id="@+id/grdIcons" -->
<!-- android:layout_width="match_parent" -->
<!-- android:layout_height="match_parent" -->
<!-- android:layout_above="@id/txtFooter" -->
<!-- android:layout_below="@id/txtHeader" -->
<!-- android:background="#f0f0" -->
<!-- android:textColor="@android:color/white" -->
<!-- android:textSize="24sp" -->
<!-- android:textStyle="bold" -->
<!-- /> -->
<GridView
android:id="@+id/grdIcons"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/txtFooter"
android:layout_below="@id/txtHeader"
android:background="#f00f"
android:textColor="@android:color/white"
android:textSize="24sp"
android:textStyle="bold"
android:columnWidth="64dp"
android:numColumns="auto_fit"
android:verticalSpacing="8dp"
android:horizontalSpacing="8dp"
android:stretchMode="none"
android:gravity="center"
/>
</RelativeLayout>
在此示例中,标题可见(红色且带有文本),但您始终可以相对于文本属性剪切部分,并将颜色设置为#0000 < / strong>(透明)
结果如下: