【问题标题】:Nativescript databound multiline TextViewNativescript 数据绑定多行 TextView
【发布时间】:2019-11-19 05:21:59
【问题描述】:

我在 Windows 10 机器上使用 Nativescript 6.2.0 Core。在 Node 9 Android 物理设备上进行测试。

我有一个绑定到模型中的字段的 TextView。首次加载屏幕时,该字段的值是一个空字符串。当用户开始输入时,如果文本变得太长,我希望 TextView 将文本换行到新行。相反,文本在同一行继续向右。

这是我的 XML 代码:

<TextView hint="Enter some text" text="{{ model.text}}" textChange="enableButton" editable="true" returnKeyType="done" keyboardType="email" />

如果我用一些长文本初始化 model.text,也会发生同样的情况。文本保持在一行。

我感觉这种行为与数据绑定有关,但我不确定如何解决。

我尝试将高度设置为更大的值(例如 100)。我还尝试在标记中使用 android:minLines="2" 。这些都没有帮助。

这是一个说明问题的游乐场:https://play.nativescript.org/?template=play-tsc&id=h1UV5p&v=2

有什么想法吗? 谢谢。

【问题讨论】:

  • 你能分享一个可以重现问题的 Playground 示例吗?
  • 你试过在 TextView 标签上使用 textWrap="true" 吗?
  • @Manoj,我将其添加到问题中

标签: nativescript


【解决方案1】:

在您的代码中,keyboardType="email" 正在停止文本换行。看起来当键盘类型是电子邮件时,您可能无法换行。

一种解决方法是在本地设置输入类型以及多行标志。

export function onLoaded(args) {
    if (args.object.android) {
        args.object.android.setInputType(android.text.InputType.TYPE_CLASS_TEXT | android.text.InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS | android.text.InputType.TYPE_TEXT_FLAG_MULTI_LINE);
    }
}

Playground Sample

【讨论】:

  • 谢谢@Manoj。更简单的解决方案实际上是完全删除键盘类型。
  • 是的,我想知道如果您一开始就不需要它,为什么还要使用它。该解决方案允许您在您的应用中可能需要它的情况下使用它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多