Pracuję nad aplikacją do przesyłania wiadomości błyskawicznych na kurs uniwersytecki, podobnie jak w Whatsapp, jak można się domyślić, widząc ikonę na załączonym zrzucie ekranu :).Poprawne wyrównanie TextViews w RelativeLayout
Mam ListFragment zapełniony niestandardowy CursorAdapter. Daje dwa typy widoków, wysłane wiadomości (wyrównane do prawej) i odebrane wiadomości (wyrównane do lewej).
Układ wysyłanych wiadomości działa dobrze, ale nie mogę powiedzieć tego samego dla otrzymanych wiadomości.
Oto zrzut ekranu:
Wysłane układ wiadomość:
<?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>
odebrane układ wiadomość:
<?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>
te brzydkie kolory tła są dodawane tylko aby zobaczyć przestrzeń dla każdego widoku i układu. Jak widać na zrzucie ekranu, wysyłanie wiadomości (wyrównane do prawej) działa świetnie. Odebrane wiadomości (wyrównane do lewej) nie są dobrze wyrównane, ponieważ RelativeLayout pobiera całą dostępną przestrzeń poziomą, po prostu do zawijania treści.
Ktoś wie, jak to naprawić, a może lepiej zaprojektować układ, aby osiągnąć to, czego potrzebuję?
Wielkie dzięki.
+1 na zrzucie ekranu, który mówi całą historię ...:) – Farhan
te głupie rzeczy i kawa są miłe do trzymania się przy pracy i braku czasu :) – mavnaranjo
+1 za zrzut ekranu. – PhatHV