我需要一个(列表)行的布局,其中包含两个ImageView
和一个TextView
(在中间)。两个图像都应该在屏幕的边缘,TextView
应该填充它们之间的空间。我的问题是,文本可以动态设置。现在我正在使用TableLayout
和属性android:stretchColumns
,但可能是文本比可用大小更长,因此ImageView
都会移出屏幕。
有人可以为我提供布局吗?对长文本有抵抗力吗?
应该如下所示:
答案 0 :(得分:0)
将LinearLayout与FILL_PARENT一起使用;查看布局权重参数。 您必须使用WRAP_CONTENT设置ImageViews,使用FILL_PARENT设置TextView。然后将一些布局权重值(仅使用“1”)应用于TextView并查看神奇的工作。
编辑:示例:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ImageView android:id="@+id/ImageView01" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:src="@drawable/add">
</ImageView>
<TextView android:id="@+id/TextView01" android:layout_height="wrap_content"
android:layout_width="fill_parent" android:layout_weight="1"
android:text="as long as you wish">
</TextView>
<ImageView android:id="@+id/ImageView02" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:src="@drawable/add">
</ImageView>
</LinearLayout>
另一个编辑(对不起,应该更好地阅读问题): 如果由于其他行而有多行并且该行因屏幕而变宽,则可以为该行设置TableLayout.setColumnShrinkable()。
答案 1 :(得分:0)
我会尝试使用类似下面的XML。我没有尝试过,但它基于:
布局:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:padding="6dip">
<ImageView
android:id="@+id/image1"
android:src="@drawable/icon1"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_marginRight="6dip"
/>
<ImageView
android:id="@+id/image2"
android:src="@drawable/icon2"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginLeft="6dip"
/>
<TextView
android:id="@+id/text"
android:singleLine="true"
android:ellipsize="marquee"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_toRightOf="@id/image1"
android:layout_toLeftOf="@id/image2"
/>
</RelativeLayout>