Reputation: 133
I'm trying to get borders between my fragments showing in a GridView
.
I setted the background color of the GridView
to white and that of the fragments to black.
Then I inserted those code lines:
int border = 2; // px
view.setColumnWidth((dm.widthPixels / 2)-(4*border));
view.setNumColumns(2);
view.setHorizontalSpacing(border);
view.setVerticalSpacing(border);
view
is my GridView
.
The result is nice borders at the left of the whole GridView
and between the fragments on top and at the bottom.
But between the both fragments on top there is no border.
Here is my declaration of the 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>
May be somebody can help.
Greets
Upvotes: 1
Views: 8043
Reputation: 45503
Well, what I was trying to explain in my earlier comment: in stead of having the GridView
regulate the spacing you want, why don't you try to make the grid items take care of that? One easy solution for this is by setting an appropriate drawable as background to the layout file you're using in/passing into the GridView
's adapter - in other words: the layout you use for your grid items, which in your case will be the fragments you mentioned.
A quick example:
Take a 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" />
And an layout to be used for the item inside of it:
<?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" />
And finally, the magic from a background drawable:
<?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>
The result will then be:
I'm not sure why the horizontal and vertical spacing parameters don't work for you, by the way. When I use those, I'm able to get an effect pretty similar to that in the image above:
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" />
Item layout (simply swapped out the earlier background resource for a fixed colour):
<?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" />
Result:
Hope this will help you on your way.
Upvotes: 6