我正在爲大學課程開發即時消息應用程序,類似於Whatsapp,因爲您可能會猜到在附加屏幕截圖中看到圖標:)。在RelativeLayout中正確對齊TextViews
我有一個ListFragment正在填充一個自定義的CursorAdapter。它提供了兩種類型的視圖,發送的消息(右對齊)和收到的消息(左對齊)。
發送消息的佈局很好,但我不能說接收到的消息是一樣的。
這裏是一個屏幕截圖:
發送消息佈局:
<?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>
接收消息佈局:
<?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>
那些難看的背景顏色被添加剛看到每個視圖和佈局所佔用的空間。正如你在截圖中看到的那樣,發送消息(右對齊)的效果很好。收到的消息(左對齊)對齊不好,因爲RelativeLayout需要所有可用的水平空間,而不是僅包裝內容。
任何人都知道如何解決它,或者更好的佈局設計來完成我所需要的?
非常感謝。
+1的屏幕截圖,告訴所有的故事...:) – Farhan 2012-03-06 06:11:05
那些愚蠢的事情和咖啡很好,繼續工作時,並沒有時間:) – mavnaranjo 2012-03-06 07:28:03
+1爲您的屏幕截圖。 – PhatHV 2012-03-08 03:05:40