我有一个 Android ListView,我希望它包含一个TextView
带有文本 ( titleTextView
) 的行,并且我想要一个左 ( leftCellBorder
) 和右 ( rightCellBorder
) 边框图像,该图像被拉伸以填充行的高度。
行的高度取决于 中有多少文本titleTextView
。如果文本溢出到第二行,则应垂直拉伸两个边框以填充边框的高度。
因此,对于单行文本,行视图应如下所示:
使用两行文本,行视图应如下所示:
我的 XML 的第一个版本是这样的:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/leftCellBorder"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_gravity="fill_vertical"
android:adjustViewBounds="true"
android:scaleType="fitXY"
android:src="@drawable/cell_border_left" />
<TextView
android:id="@+id/titleTextView"
android:layout_width="210dp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:gravity="center"
android:text="Title"
android:textSize="30dp" />
<ImageView
android:id="@+id/rightCellBorder"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:adjustViewBounds="true"
android:scaleType="fitXY"
android:src="@drawable/cell_border_right" />
</RelativeLayout>
我认为拥有andleftCellBorder
就rightCellBorder
足以确保它们被拉伸到正确的高度,但这不起作用,我得到的结果如下:layout_height
match_parent
即图像没有被拉伸以填充高度。
所以然后我回去尝试LinearLayout
在根部使用水平而不是RelativeLayout
有3个子视图。这实际上有效,并且左右边界被适当拉伸以填充高度,但是我遇到的问题是似乎没有办法用 a 夹住rightCellBorder
右侧LinearLayout
(除非我我错过了一些东西)。
那么——我怎样才能达到我想要的效果呢?最好我想坚持,RelativeLayout
因为这给了我更多的灵活性。当然这不应该那么困难!