1
[short text][image1][image2]____________________________________

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

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

尝试的方法:

  1. 没有权重的线性布局

    缺点:TextView 很大时,ImageViews 不显示。

  2. 带权重的线性布局

    缺点:ImageView 不再彼此相邻,而是按权重比例占用空间。

  3. 相对布局 - image2:alignParentBottom,image1:toLeftOf="image2",文本:toLeftOf="image1"

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

    _ __ _ __ _ __ _ __ _ __ _ ____ [短文本][图片1][图片2]

这样的布局如何实现?最好不嵌套?

提前致谢!

4

2 回答 2

1

您应该使用第三种方法,但将 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>

如果您只想将文本视图保留在一行中,请使用android:singleLine="true"

于 2013-10-26T17:44:33.127 回答
0

This trick worked for me. Try this if this can help you.

<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:paddingRight="32dp"
    android:singleLine="true"
    android:text="This is a very large text just to test the alignment of the images with the textview" />

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

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="16dp"
    android:layout_height="16dp"
    android:layout_toLeftOf="@+id/imageView2"
    android:src="@drawable/ic_launcher" />
</RelativeLayout>
于 2014-10-10T06:41:57.287 回答