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

  • Falta el botón colocado después de ListView
  • Obtener un elemento seleccionado en listview cuando genero el menú contextual
  • ListView / ExpandableListView setEmptyView () no tiene efecto
  • ¿Cómo puedo quitar el teclado después de terminar una actividad?
  • ¿Por qué el onItemClick de Android desea un largo para id de fila?
  • Android BaseAdapter con Fragmento
  • ListView dentro de ScrollView no se desplaza en Android
  • Cómo cambiar el color y la fuente en ListView
  • ListView onItemClickListener no se llama
  • Android Listview - no puede seleccionar varios elementos cuando usa un cursor
  • Android Checkbox listview seleccionar todo (desactivar / activar)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.