[short text][image1][image2]____________________________________
[this is a reallyyyyyyy.............y long text][image1][image2]
我有3个视图:一个可变大小的TextView和两个小图像(16dp x 16dp),并希望实现一个布局,使图像始终显示为16dp x 16dp,文本应显示在剩余空间中,如果也是椭圆形长。 3个视图组应该全部左对齐并且彼此相邻。
尝试了方法:
没有权重的LinearLayout
缺点:当TextView很大时,不会显示ImageView。
带权重的LinearLayout
缺点:ImageViews不再相邻,而是以权重比例占据空间。
RelativeLayout - image2:alignParentBottom,image1:toLeftOf =“image2”,text:toLeftOf =“image1”
缺点:现在所有元素都是右对齐的。
_ __ _ __ _ __ _ __ _ 的__ _ ____ [简短文字] [image1] [image2]
如何实现这样的布局?最好没有嵌套?
提前致谢!
答案 0 :(得分:1)
你应该使用你的第三个方法,但将textview gravity设置为left。
这样的事情:
<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"
答案 1 :(得分:0)
<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>