6

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

| First text item      label |

到目前为止,这听起来很容易:我可以TextView在 a 中使用两个 s RelativeLayout,将右侧的一个设置为layout_alignParentRight="true"or layout_gravity="right"。但也存在左侧文本太长而无法放入剩余空间的情况。使用 aRelativeLayout它会与右侧文本重叠,但在这种情况下我希望它分成两行:-

| This text is way too long  |
|                      label |

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

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

因为Android 中的 s 总是矩形的,所以即使我编写了一个 custom View,似乎也不可能使最后一个示例与两个s 一起工作。我研究过使用 a让我将所有文本放在一个中,但又是 a ,所以看起来它不能以这种方式将标签放在与左侧文本相同的行上。是否有其他类型的文本跨度可以用来实现这一点,甚至是完全不同的方法?TextViewLayoutSpannableTextViewAlignmentSpanParagraphStyle

目前,看来我必须要么将文本放入 HTML 并使用 a WebView(不太好,因为视图将进入列表项),要么编写一个类似自定义TextView的小部件。

4

1 回答 1

5

添加android:gravity="right"(不一样layout_gravity)到右边,但也添加android:layout_alignBottom并引用另一个文本视图的 id。multiline 到 true 等我假设你已经有了。分别保留alignParentRightalignParentLeft

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

android:layout_alignBottom="@id..."另一种方法,试试这个:交换android:layout_alignParentBottom="true"右侧文本视图。

让第三个示例和第二个示例同时使用一个简单的 RelativeLayout,嗯...

于 2012-12-19T17:25:37.357 回答