Java 如何放置发件人';左侧和接收器上的s消息';右边是s消息

Java 如何放置发件人';左侧和接收器上的s消息';右边是s消息,java,android,xml,Java,Android,Xml,现在我有这个: 我把我所有的信息(发送者和接收者的)都放在一边,但我希望它们像你的典型信息应用程序一样,比如Messenger或IMessage,这就是我想要实现的: 这是我的适配器: if(from_user.equals(current_user_id)){ viewHolder.messageText.setBackgroundResource(R.drawable.message_back_other); viewHolder.messageText.

现在我有这个:

我把我所有的信息(发送者和接收者的)都放在一边,但我希望它们像你的典型信息应用程序一样,比如Messenger或IMessage,这就是我想要实现的:

这是我的适配器:

if(from_user.equals(current_user_id)){
        viewHolder.messageText.setBackgroundResource(R.drawable.message_back_other);
        viewHolder.messageText.setTextColor(Color.BLACK);
    }else{
        viewHolder.messageText.setBackgroundResource(R.drawable.message_back);
        viewHolder.messageText.setTextColor(Color.WHITE);  
    }
这是我的邮件背景xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/colorPrimary"/>
<corners android:radius="30dp"/>


对发件人和收件人的邮件使用不同的项目类型。这将允许您在不同的布局中分别设置背景色、文本颜色和重力。

我在消息列表的左侧和右侧使用不同的xml布局文件

在my
Adapter
中,我检查是否发送或接收了消息:

        if(isMe) {
            convertView = LayoutInflater.from(getContext()).inflate(R.layout.message_right, parent, false);
        }
        else{
            convertView = LayoutInflater.from(getContext()).inflate(R.layout.message_left, parent, false);
        }
    }
从xml布局文件中删除不需要的视图

左侧的我的xml布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:tools="http://schemas.android.com/tools"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical"
    >

    <TextView
        android:id="@+id/tvDate"
        android:text="12/12/2017"
        android:textSize="@dimen/message_time_text_size"
        android:textAlignment="center"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="5dp"
        android:layout_marginEnd="20dp"
        android:paddingBottom="8dp"
        android:paddingStart="10dp"
        android:paddingEnd="1dp"
        android:paddingTop="5dp"
        android:textColor="@color/ride_message_time_color"
        android:visibility="gone"
        />

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <TextView
            android:id="@+id/tvMessage"
            android:gravity="start"
            android:text="Blank Message"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:background="@drawable/message_textview_left"
            android:layout_marginBottom="5dp"
            android:layout_marginStart="1dp"
            android:layout_marginEnd="10dp"
            android:paddingBottom="8dp"
            android:paddingStart="10dp"
            android:paddingEnd="10dp"
            android:paddingTop="5dp"
            android:textColor="@color/black"
            android:layout_weight="7"
            />
        <TextView
            android:id="@+id/tvTime"
            android:text="11:00 PM"
            android:layout_width="0dp"
            android:textSize="@dimen/message_time_text_size"
            android:textAlignment="textStart"
            android:layout_height="wrap_content"
            android:layout_marginBottom="5dp"
            android:layout_marginStart="1dp"
            android:layout_marginEnd="20dp"
            android:paddingBottom="8dp"
            android:paddingStart="5dp"
            android:paddingEnd="10dp"
            android:paddingTop="5dp"
            android:textColor="@color/ride_message_time_color"
            android:layout_weight="2"
            />
    </LinearLayout>
</LinearLayout>

右侧的我的xml布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:tools="http://schemas.android.com/tools"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical"
    >

    <TextView
        android:id="@+id/tvDate"
        android:text="12/12/2017"
        android:textSize="@dimen/message_time_text_size"
        android:textAlignment="center"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="5dp"
        android:layout_marginEnd="20dp"
        android:paddingBottom="8dp"
        android:paddingStart="10dp"
        android:paddingEnd="1dp"
        android:paddingTop="5dp"
        android:textColor="@color/ride_message_time_color"
        android:visibility="gone"
        />
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <TextView
            android:id="@+id/tvTime"
            android:text="12:30 PM"
            android:textSize="@dimen/message_time_text_size"
            android:textAlignment="textEnd"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginBottom="5dp"
            android:layout_marginEnd="20dp"
            android:paddingBottom="8dp"
            android:paddingStart="10dp"
            android:paddingEnd="1dp"
            android:paddingTop="5dp"
            android:textColor="@color/ride_message_time_color"
            android:layout_weight="2"
            />
        <TextView
            android:id="@+id/tvMessage"
            android:layout_gravity="end"
            android:text="Blank Message"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:background="@drawable/message_textview_right"
            android:layout_marginBottom="5dp"
            android:layout_marginStart="1dp"
            android:layout_marginEnd="1dp"
            android:paddingBottom="8dp"
            android:paddingStart="10dp"
            android:paddingEnd="10dp"
            android:paddingTop="5dp"
            android:textColor="@color/black"
            android:layout_weight="7"
            />
    </LinearLayout>
</LinearLayout>


请解释更多我是新来的啊哈android@Novel::你有机会尝试解决方案吗?很抱歉反应太晚啊哈刚刚尝试了你的方法,效果很好谢谢!