Android lista personalizada con espacio entre los elementos

¿Cómo puedo hacer un listview de la siguiente manera:

listview con espacios entre cada elemento

y una pregunta más sobre el diseño de la fila, tengo tal disposición

<?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" > <LinearLayout android:layout_width="wrap_content" android:layout_height="100dp" android:background="@drawable/deals_list_row_gradient_background" android:orientation="horizontal" > <ImageView android:id="@+id/dealImg" android:layout_width="100dp" android:layout_height="100dp" android:layout_gravity="top" android:src="@drawable/test" /> <LinearLayout android:layout_width="match_parent" android:layout_height="100dp" android:orientation="vertical" > <TextView android:id="@+id/dealDescription" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:layout_marginRight="5dp" android:layout_marginTop="5dp" android:text="Lorem Ipsum dolor sit amet dolor sed a ite amkt Lantin dolor latim dk kuitshen sed iditur anet" /> <TextView android:id="@+id/smth" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="4dp" android:layout_marginRight="4dp" android:text="...................................................." android:textAppearance="?android:attr/textAppearanceSmall" /> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/dealNewPrice" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:layout_marginRight="5dp" android:text="1248$" android:textColor="@color/deals_list_new_price" android:textSize="18sp" android:textStyle="bold" /> <TextView android:id="@+id/dealOldPrice" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_marginRight="15dp" android:layout_toLeftOf="@+id/dealNewPrice" android:text="2500$" android:textColor="@color/deals_list_old_price" android:textSize="15sp" /> </RelativeLayout> </LinearLayout> </LinearLayout> </LinearLayout> 

pero tengo problemas con imageview, no entiendo cómo será correctamente establecer su anchura y altura también mucha gente me dice que usar RalativeLayout es mala idea

4 Solutions collect form web for “Android lista personalizada con espacio entre los elementos”

Usted puede hacer esto bastante fácilmente con el diseño de vista de lista modificada. He aquí cómo implementé:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/transparent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <ListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="match_parent" android:divider="@android:color/transparent" android:dividerHeight="10dp" /> </RelativeLayout> 

Y aquí está la visión resultante:

vista de lista corregida

Una cosa a tener en cuenta:

Esta captura de pantalla se tomó en un dispositivo xhdpi – puede ver un problema con sus líneas discontinuas. Considere el uso de un ShapeDrawable en su lugar y especifique android:dashGap y android:dashWidth .

utiliza estas dos líneas en tu listview en el xml:

  android:divider="@android:color/transparent" android:dividerHeight="10px" 

y para su Imageview pruebe estas dos adiciones:

  <ImageView ... android:scaleType="fitCenter" android:adjustViewBounds="true" /> 

Está buscando la interfaz de usuario de estilo de tarjetas que se encuentra en Google Now, etc. Puede utilizar la tarjeta personalizada de la tarjeta para obtener un efecto similar. https://github.com/afollestad/Cards-UI

Establezca estas dos propiedades en su ListView, que proporcionará margen superior y inferior

  android:divider="@android:color/transparent" android:dividerHeight="10dp" 

y establecer

  android:layout_margin="7dp" 

a su ListView para obtener los márgenes izquierdo y derecho, dará el diseño deseado

  • Android: getView () llamado dos veces en el adaptador personalizado
  • ¿Cómo puedo ajustar un número exacto de elementos ListView en la pantalla?
  • notifyDataSetChanges para el adaptador de lista, modifique sólo parte de la vista
  • ListView getView () se llama con demasiada frecuencia
  • ¿No puede obtener valores de EditViewText de ListView?
  • Agregar un encabezado / pie de página en un listview en xml
  • Reemplazar un fragmento con otro en ViewPager
  • Deshabilitar evento de clic en los elementos de lista de reproducción de Android
  • Cómo implementar 2 tipos diferentes de seperators (es decir, encabezados) en una clase de adaptador ListView
  • Mostrar siempre la barra de desplazamiento para ListView
  • Android: AmazingListView encabezado fijado es intocable
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.