Estoy desarrollando una aplicación de mensajería instantánea para un curso universitario, similar a Whatsapp, ya que podría adivinar el icono en la captura de pantalla adjunta :).Alineación correcta de TextViews en RelativeLayout
Tengo un ListFragment poblado con un CursorAdapter personalizado. Da dos tipos de vistas, mensajes enviados (alineados a la derecha) y mensajes recibidos (alineados a la izquierda).
El diseño de los mensajes enviados funciona bien, pero no puedo decir lo mismo de los mensajes recibidos.
Aquí está una captura de pantalla:
diseño mensaje enviado:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:background="#FFCCCCCC"
android:padding="5dp" >
<TextView
android:id="@+id/ceo_timestamp"
android:layout_width="60sp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:background="#FFBBBBBB"
android:gravity="center"
android:textSize="10sp" />
<TextView
android:id="@+id/ceo_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/ceo_timestamp"
android:background="#FFAAAAAA"
android:gravity="right"
android:textSize="16sp" />
</RelativeLayout>
</RelativeLayout>
diseño de mensajes recibidos:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="left" >
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:background="#FF999999"
android:padding="5dp" >
<TextView
android:id="@+id/cei_timestamp"
android:layout_width="60sp"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:background="#FF888888"
android:gravity="center"
android:textSize="10sp" />
<TextView
android:id="@+id/cei_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@+id/cei_timestamp"
android:background="#FF777777"
android:gravity="right"
android:textSize="16sp" />
</RelativeLayout>
</RelativeLayout>
se añaden Esos colores de fondo feas sólo para ver la espacio tomado para cada vista y diseño. Como puede ver en la captura de pantalla, enviar mensajes (alineados a la derecha) funciona muy bien. Los mensajes recibidos (alineados a la izquierda) no se están alineando bien, porque RelativeLayout toma todo el espacio horizontal disponible, con la intención de simplemente envolver el contenido.
¿Alguien sabe cómo solucionarlo, o tal vez un mejor diseño para lograr lo que necesito?
Muchas gracias.
+1 para una captura de pantalla que le dice a toda la historia ...:) – Farhan
esas cosas estúpidas y el café son agradables de seguir cuando tiene trabajo que hacer y le falta tiempo :) – mavnaranjo
+1 para su captura de pantalla. – PhatHV