studio propiedades numcolumns gridlayout descargar columnas android gridview

propiedades - menu gridview android



separadores/separadores de fila gridview android (4)

¿Hay alguna manera de mostrar divisores (horizontales) entre filas en una vista de cuadrícula?

Traté de poner una pequeña imagen divisoria debajo de cada elemento de la cuadrícula, pero esta no es una solución, porque no abarcará toda la fila cuando una fila no está completamente llena de elementos.

¿Hay alguna manera de simplemente agregar una imagen entre cada fila? Solo puedo encontrar métodos para cambiar el espacio entre filas.


Si está utilizando un diseño personalizado para los elementos de la grilla. El siguiente código funcionará.

Paso 1: Dale color de fondo a GridView

Esto va a servir como un divisor.
Give horizontalSpacing y verticalSpacing como 1dp
backgroundColor será tu color divisor.

<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" >

Paso 2: Dar color de fondo al diseño de elementos de cuadrícula personalizados

Esto servirá como color de primer plano para GridItems.
En mi caso lo mantuve en blanco (#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>

Resultado

Nota:
Si no desea el separador vertical, mantenga horizontalSpacing = 0dp
Si no desea el separador horizontal, mantenga verticalSpacing = 0dp


Solo quería compartir cómo implementé esto usando el enlace aceptado por OP. Para mi caso, también necesitaba controlar la longitud de los separadores, por lo que no pude evitar la subclasificación de GridView .

public class HorizontalSeparatorGridView extends GridView { // Additional methods @Override protected void dispatchDraw(Canvas canvas) { final int count = getChildCount(); for(int i = 0; i < count; i++) { View child = getChildAt(i); int bottom = child.getBottom(); int left = child.getLeft(); int right = child.getRight(); Paint paint = new Paint(); paint.setColor(0xffececec); paint.setStrokeWidth(Math.round(0.5 * density)); int offset = // Some offset canvas.drawLine(left + offset, bottom, right - offset, bottom, paint); } super.dispatchDraw(canvas); }

onDraw dispatchDraw en lugar de onDraw solo para estar seguro, pero no creo que importaría en este caso.


Sugiero hacer lo siguiente:

`

<TableRow android:id="@+id/tableRow1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginBottom="1sp" android:layout_marginLeft="7sp" android:layout_marginRight="7sp" android:layout_marginTop="7sp" android:background="@android:color/transparent"> <TextView android:id="@+id/lblDeposit" android:layout_width="60sp" android:layout_height="40sp" android:layout_gravity="center_vertical" android:layout_marginLeft="0sp" android:background="@drawable/rounded_top_left_rectangle" android:gravity="center" android:paddingLeft="5sp" android:scaleType="fitXY" android:text="Deposit" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="#000"> </TextView> <TextView android:id="@+id/lblDepositvalue" android:layout_width="50sp" android:layout_height="40sp" android:layout_gravity="center_vertical" android:layout_marginLeft="2sp" android:layout_marginRight="13sp" android:background="@drawable/rounded_top_right_rectangle" android:gravity="center_vertical|center_horizontal" android:scaleType="fitXY" android:text="40000/-Rs" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="#000"> </TextView> </TableRow> <TableRow android:id="@+id/tableRow2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginBottom="6sp" android:layout_marginLeft="7sp" android:layout_marginRight="7sp" android:layout_marginTop="2sp" android:background="@android:color/transparent"> <TextView android:id="@+id/lblPoints" android:layout_width="60sp" android:layout_height="40sp" android:layout_gravity="center_vertical" android:layout_marginLeft="0sp" android:background="@drawable/rounded_bottom_right_rectangle" android:gravity="center" android:paddingLeft="5sp" android:scaleType="fitXY" android:text="Points " android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="#000"> </TextView> <TextView android:id="@+id/lblPointsValue" android:layout_width="50sp" android:layout_height="40sp" android:layout_gravity="center_vertical" android:layout_marginLeft="2sp" android:layout_marginRight="13sp" android:background="@drawable/rounded_bottom_left_rectangle" android:gravity="center_vertical|center_horizontal" android:scaleType="fitXY" android:text="20" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="#000"> </TextView> </TableRow> </TableLayout>`


Terminé creando una vista de cuadrícula personalizada, algo como esto:

https://.com/a/9757501/1310343

usando una imagen de fondo que es exactamente tan alta como un elemento en mi vista de cuadrícula, y tiene un proveedor en la parte inferior.

¡Funciona de maravilla!