并排观看,动态尺寸

时间:2016-08-18 13:49:04

标签: android android-layout textview

我尝试并排放置三个视图:text1 - img - text2。 Img必须始终在text1(没有额外的空间)。我试图使用布局权重来解决这个问题,但是使用该解决方案,img始终位于父视图的中心。

预期结果:

Text1简短,T​​ext2长。不要在Text1和img之间添加空格

+----------------------------------------+
| [Text1 a] [img] [Text2 asdfghjklz... ] |
+----------------------------------------+

两个文本都是椭圆形的,保持img中心

+----------------------------------------+
| [Text1 asdfg...] [img] [Text2 asdf...] |
+----------------------------------------+

Text1 long,text2 short

+----------------------------------------+
| [Text1 asdfgadfafs...] [img] [Text2 a] |
+----------------------------------------+

这是我能得到的最接近的(使用重量),但问题是如果text1很短,则img仍然位于布局的中心。我应该总是直接在text1的右边。

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

    <TextView
        android:id="@+id/textview1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:ellipsize="end"
        android:maxLines="1"
        tools:text="Text1 asdfghjkl" />

    <ImageView
        android:id="@+id/img"
        android:layout_width="18dp"
        android:layout_height="18dp"
        android:layout_marginLeft="4dp"
        android:layout_marginRight="4dp"
        android:src="@drawable/ic_arrow" />

    <TextView
        android:id="@+id/textview2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:ellipsize="end"
        android:maxLines="1"
        tools:text="Text2 asdfghjkl" />

</LinearLayout>

1 个答案:

答案 0 :(得分:0)

使用相对布局将每个小部件对齐到另一个小部件的右侧。对于第一个textview给出一些宽度并添加2行以下

机器人:ellipsize =&#34;端&#34;         机器人:MAXLINES =&#34; 1&#34;

图像使用所需的高度和宽度

第三个textview的

使用以下代码。对于此textview,您不必设置可以使用换行内容的宽度。

机器人:ellipsize =&#34;端&#34;         机器人:MAXLINES =&#34; 1&#34;

希望这有帮助,或者至少这将是一个良好的开端。