1

我试图让我的片段之间的边界显示在GridView. 我将背景色设置GridView为白色,片段的背景色设置为黑色。然后我插入了这些代码行:

int border = 2; // px
view.setColumnWidth((dm.widthPixels / 2)-(4*border));
view.setNumColumns(2);
view.setHorizontalSpacing(border);
view.setVerticalSpacing(border);

view是我的GridView

结果是整体左侧GridView以及顶部和底部片段之间的边界很好。但是顶部的两个片段之间没有边界。

这是我的声明GridView

<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/overview"
    android:stretchMode="columnWidth"
    android:clipChildren="true" >

</GridView>

可能有人可以帮忙。

问候

4

1 回答 1

5

好吧,我在之前的评论中试图解释的是:与其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" />

结果:

另一个带有“边框”的网格视图

希望这对您有所帮助。

于 2012-04-18T22:07:48.453 回答