现在我有了这个:
我的所有邮件(发件人和收件人)都在一边,但我希望它们像您的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"/>
答案 0 :(得分:1)
我在消息列表的左侧和右侧使用不同的xml布局文件。
在我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>
答案 1 :(得分:0)
对发件人与收件人的邮件使用不同的项目类型。这样您就可以在不同的布局中为每个布局设置背景颜色,文本颜色和重力。