[short text][image1][image2]____________________________________

[this is a reallyyyyyyy.............y long text][image1][image2]


我有3个视图:一个具有可变大小的TextView和两个小图像(16dp x 16dp),并且想要实现一种布局,以使图像始终显示为16dp x 16dp,并且文本应在剩余空间中显示,并且如果太长则以椭圆形显示。 3个视图的组应全部对齐并彼此相邻。

尝试的方法:


无权重的LinearLayout

缺点:当TextView很大时,将不显示ImageViews。
具有权重的LinearLayout

缺点:ImageViews不再彼此相邻,而是按权重比例占用空间。
RelativeLayout-image2:alignParentBottom,image1:toLeftOf =“ image2”,文本:toLeftOf =“ image1”

缺点:现在所有元素都右对齐。

____________________ [短文本] [image1] [image2]


如何实现这种布局?最好没有嵌套?

提前致谢!

最佳答案

您应该使用第三个方法,但将textview重力设置为左侧。

像这样:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:gravity="right"
        android:layout_toLeftOf="@+id/imageView1"
        android:text="TextView" />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="16dp"
        android:layout_height="16dp"
        android:layout_toLeftOf="@+id/imageView2"
        android:src="@drawable/ic_launcher" />

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="16dp"
        android:layout_height="16dp"
        android:layout_alignParentRight="true"
        android:src="@drawable/ic_launcher" />

</RelativeLayout>


如果要仅将textview保留在一行中,请使用android:singleLine="true"

关于android - Android布局:如何相对于最右边的 View 对齐,但保持所有元素对齐,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19609075/

10-11 22:45
查看更多