好吧,我在之前的评论中试图解释的是:与其GridView
调整你想要的间距,你为什么不尝试让网格项目来处理它呢?一个简单的解决方案是通过将适当的可绘制对象设置为您正在使用/传递到GridView
' 的适配器的布局文件的背景 - 换句话说:您用于网格项目的布局,在您的情况下将是你提到的片段。
一个简单的例子:
采取GridView
:
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/white"
android:numColumns="4" />
以及用于其中项目的布局:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/grid_background"
android:gravity="center"
android:text="Text"
android:textColor="@android:color/white" />
最后,来自背景可绘制的魔法:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:width="5dp" android:color="@android:color/white" />
<padding android:bottom="5dp" android:left="5dp" android:right="5dp"
android:top="5dp" />
<solid android:color="@android:color/black" />
</shape>
结果将是:
顺便说一句,我不确定为什么水平和垂直间距参数对你不起作用。当我使用它们时,我可以获得与上图非常相似的效果:
GridView
:
<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/white"
android:horizontalSpacing="10dp"
android:numColumns="4"
android:verticalSpacing="10dp" />
项目布局(只需将较早的背景资源换成固定颜色):
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/black"
android:gravity="center"
android:text="Text"
android:textColor="@android:color/white" />
结果:
希望这对您有所帮助。