Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

android gridview row dividers / separators

Is there a way to show (horizontal) dividers between rows in a gridview?

I tried putting a small divider-image below every grid item, but this is not a solution, because it won't span the whole row when a row is not completely filled with items.

Is there a way to just add an image between every row? I can only find methods for changing the space between rows.

like image 280
Frank Avatar asked Aug 24 '12 12:08

Frank


1 Answers

If you are using custom layout for grid items. Below code will work.

Step 1: Give background color to GridView

This is going to serve as a divider.
Give horizontalSpacing and verticalSpacing as 1dp
backgroundColor will be your divider color.

<GridView         android:id="@+id/gridView1"         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:background="#e5e5e5"         android:horizontalSpacing="1dp"         android:numColumns="auto_fit"         android:stretchMode="columnWidth"         android:verticalSpacing="1dp" > 

Step 2: Give background color to Custom Grid Item Layout

This is going to serve as a foreground color for GridItems.
In my case I kept it white (#fff)

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:orientation="vertical"     android:gravity="center"     android:background="#fff"     android:padding="15dp"      >      <ImageView         android:id="@+id/icon"         android:layout_width="50dp"         android:layout_height="50dp"         android:src="@drawable/ic_launcher_transparent" />      <TextView         android:id="@+id/lable"         android:layout_marginTop="5dp"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:text="Medium Text"         android:textStyle="bold"         android:textColor="#D0583B"         android:textAppearance="?android:attr/textAppearanceSmall" />  </LinearLayout> 

Result

enter image description here

Note:
If you do not want vertical separator, keep horizontalSpacing = 0dp
If you do not want horizontal separator, keep verticalSpacing = 0dp

like image 96
Chaitanya Chandurkar Avatar answered Oct 08 '22 17:10

Chaitanya Chandurkar