XML 文本视图和 2 个图像视图的布局

XML Layouting for a textview and 2 imageviews

我需要使用单行 TextView 和 2 个 ImageView 进行布局。它们需要按以下顺序排列:TextView | ImageView1 | [剩余 space] | ImageView2

所有这些都有一个限制,即如果 TextView 中的文本溢出,第一个 ImageView 会被推送并粘在第二个图像视图上,并且溢出的文本会被修剪并显示为省略号。像这样:Trimmed TextView... | ImageView1 | ImageView2

为了更清楚地说明实例,这里有一个插图:

对于这个特定的用例应该如何布局?

试试这个:

输出 1 :

输出2:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/colorWhite"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <RelativeLayout 
            android:id="@+id/layout_message"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content">

            <TextView
                android:id="@+id/tv_message"
                style="@style/TextAppearance.AppCompat.Body1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingRight="30dp"
                android:ellipsize="end"
                android:lines="1"
                android:text="Hello Mike bla bla bla  bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla " />

            <ImageView
                android:id="@+id/tv_msg_time"
                android:layout_width="20dp"
                android:layout_height="20dp"
                android:src="@drawable/done_all"
                android:layout_alignRight="@+id/tv_message"
                android:textColor="@android:color/black"
                android:textSize="10sp" />

        </RelativeLayout>

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="0.1"
            android:gravity="end">

            <ImageView
                android:layout_width="20dp"
                android:layout_height="20dp"
                android:src="@drawable/job_like" />

        </LinearLayout>
    </LinearLayout>
</LinearLayout>