Nativescript –在textView,动态文本和多行中放置水平文本居中

时间:2018-12-25 09:30:06

标签: nativescript angular2-nativescript

我有一个nativescript应用。我遇到一种情况,我需要动态显示文本,所以我不知道会有多少文本和多少行。

文本需要多行换行,并且必须始终在水平方向上居中对齐(不是垂直,左右两侧的距离相同)。

因此,我猜<Label>不是正确的元素,因为它不是用于多行的(如果我理解正确?!)。

所以我选择了<TextView>,但是这里的样式text-align: center被忽略了。

因此,在文档中,我找到了构造函数 textAlignment https://docs.nativescript.org/api-reference/modules/_ui_text_base_#textalignment,但我无法使其正常工作。

不起作用:

<TextView  text="{{ taskString }}"
    horizontalAlignment="center"
    editable="false"
 ></TextView>

不起作用:

<TextView  text="{{ taskString }}"
    textAlignment="center"
    editable="false"
 ></TextView>

请让我知道,很明显我没来过这里。谢谢。

更新: 带有textWrap="true"的标签通常可以正常工作。但是我有一个“复杂”的<ContentView> <FlexboxLayout>组合,这似乎引起了Label高度无法更新的问题。

我的解决方案: 只是不要使用<FlexboxLayout> <FlexboxLayout> ... </FlexboxLayout> </FlexboxLayout>解决方案。那不会动态计算Label的高度。

本地游乐场: https://play.nativescript.org/?template=play-ng&id=SnNmkQ

1 个答案:

答案 0 :(得分:1)

如果启用textWrap

,标签可以是多行

XML

<Label text="{{ taskString }}" textWrap="true" ...

CSS

Label {
   white-space: normal;
}