【发布时间】:2016-08-05 04:24:52
【问题描述】:
我正在为大学课程开发一个即时消息应用程序,类似于 Whatsapp,您可能会猜到看到随附屏幕截图中的图标 :)。
我有一个使用自定义 CursorAdapter 填充的 ListFragment。它提供了两种视图,发送消息(右对齐)和接收消息(左对齐)。
已发送消息的布局效果很好,但对于收到的消息我不能说同样的话。
这是截图:
发送消息布局:
<?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 获取讲述所有故事的屏幕截图... :)
-
那些愚蠢的事情和咖啡在有工作要做和没有时间的时候继续喝很不错:)
-
+1 为您的屏幕截图。
标签: android android-layout android-relativelayout