我正在为大学课程开发即时消息应用程序,类似于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