在Android中使文本浮动

时间:2012-12-19 17:17:30

标签: android android-layout text textview

我正在尝试在Android中实现一些类似于float="right"的HTML文本布局。我在屏幕的某个区域有两个文本项。我希望其中一个在TextView中左对齐,其中一个是右对齐的,就像这样(两端的|代表封闭容器): -

| First text item      label |

到目前为止,这听起来很简单:我可以在TextView中使用两个RelativeLayout,将右手设置为layout_alignParentRight="true"layout_gravity="right"。但也有左手文字太长而无法容纳剩余空间的情况。使用RelativeLayout它会与右手文本重叠,但在这种情况下我希望它分为两行: -

| This text is way too long  |
|                      label |

同样地,如果左侧文本流到多行,我希望右手文本尽可能适合同一行: -

| This text doesn't fit on   |
| one line             label |

因为Android中的View始终是矩形的,所以即使我编写了自定义TextView,似乎也无法使最后一个示例与两个Layout一起使用。我查看了使用Spannable让我将所有文字放在一个TextView中,但同样,AlignmentSpanParagraphStyle,所以看起来不像'{1}}能够将标签放在与左手文本相同的行上。我是否可以使用其他类型的文本范围来实现这一目标,甚至是完全不同的方法?

目前,看起来我必须要将文本放在HTML中并使用WebView(不太好,因为视图要放入列表项),或者编写自定义{ {1}} - 就像小部件一样。

1 个答案:

答案 0 :(得分:5)

android:gravity="right"(与layout_gravity不同)添加到右侧,但也添加android:layout_alignBottom并引用其他文字视图的ID。 multiline to true等我认为你已经有了。分别保留alignParentRightalignParentLeft

要清楚,虽然它们是矩形的,但如果您愿意,它们仍然可以重叠,使用RelativeLayout(或FrameLayout等)

替代方式,试试这个:  将android:layout_alignBottom="@id..."android:layout_alignParentBottom="true"交换为右侧侧文字视图。

使用简单的RelativeLayout获取第三个示例和第二个示例同时工作,嗯......