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

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

  • Cómo obtener los elementos de la lista seleccionada de un Listview con checkBox y Adaptador personalizado?
  • Cómo utilizar addHeaderView para agregar un ImageView simple a un ListView
  • Desaparecer divisor en ListView cuando ArrayAdapter.isEnabled devuelve false
  • Cómo finalizar una actividad de una clase de adaptador ListView?
  • Cómo eliminar listview todos los elementos
  • Barra de Acción de Android Buscar con listview
  • Android ListView alpha scroller para desplazamiento rápido de larga lista
  • Android: ¿Qué es inflater en listview?
  • Cómo borrar un Android ListView y llenarlo con nuevos datos?
  • Elemento de lista que se repite en android personalizado listview
  • Android QuickContactBadge con letras como Android Lollipop
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.