Android GridView垂直边框

Hen*_*rik 1 android gridview android-gridview

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

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

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>
Run Code Online (Sandbox Code Playgroud)

可能有人可以提供帮助.

电贺

MH.*_*MH. 5

好吧,我在之前的评论中试图解释的是:GridView为什么不试着让网格项目处理呢?一个简单的解决方案是将适当的drawable设置为您正在使用/传入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" />
Run Code Online (Sandbox Code Playgroud)

以及用于其中项目的布局:

<?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" />
Run Code Online (Sandbox Code Playgroud)

最后,来自背景的魔力可绘:

<?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>
Run Code Online (Sandbox Code Playgroud)

结果将是:

带有'边框'的gridview

顺便提一下,我不确定为什么水平和垂直间距参数对你不起作用.当我使用它们时,我能够获得与上图中的效果非常相似的效果:

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" />
Run Code Online (Sandbox Code Playgroud)

项目布局(简单地将早期的背景资源换成固定颜色):

<?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" />
Run Code Online (Sandbox Code Playgroud)

结果:

带有'border'的另一个gridview

希望这会对你有所帮助.