Nativescript – textView、动态文本和多行中的居中水平文本

Nativescript – center horizontal text inside textView, dynamic text and multiline

我有一个 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" 的标签通常工作得很好。但是我有一个 "complex" <ContentView> <FlexboxLayout> 组合,这似乎导致标签的高度没有得到更新的问题。

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

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

如果启用 textWrap

,标签可以是多行的

XML

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

CSS

Label {
   white-space: normal;
}