在RelativeLayout中正确对齐TextViews

mav*_*njo 6 android relativelayout android-layout

我正在开发一个大学课程的即时消息应用程序,类似于Whatsapp,你可以猜到看到附加屏幕截图中的图标:).

我有一个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>
Run Code Online (Sandbox Code Playgroud)

收到消息布局:

<?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>
Run Code Online (Sandbox Code Playgroud)

添加那些丑陋的背景颜色只是为了查看每个视图和布局所占用的空间.正如您在屏幕截图中看到的那样,发送消息(右对齐)非常有效.收到的消息(左对齐)没有很好地对齐,因为RelativeLayout占用了所有可用的水平空间,只是包装内容.

任何人都知道如何解决它,或者更好的布局设计来完成我需要的东西?

非常感谢.

Om *_*kla 1

在发送消息布局中,将 android:layout_alignParentRight="true" 参数替换为 android:layout_alignParentLeft="true"。