【发布时间】:2018-03-10 19:32:40
【问题描述】:
我需要实现文本区域的动态高度,希望用户输入评论。我在 WhatsApp 上见过这样的 textArea 交互。 文本区域最初将是 1 行高,稍后当用户输入它应该增加的文本时。但文本区域不应增加超过 3 行高。
【问题讨论】:
标签: javascript appcelerator jtextarea appcelerator-alloy
我需要实现文本区域的动态高度,希望用户输入评论。我在 WhatsApp 上见过这样的 textArea 交互。 文本区域最初将是 1 行高,稍后当用户输入它应该增加的文本时。但文本区域不应增加超过 3 行高。
【问题讨论】:
标签: javascript appcelerator jtextarea appcelerator-alloy
到目前为止,我使用了一种解决方法来实现这一点。
var _lines = textFieldValue.split(/\r\n|\r|\n/).length;
if(_lines > 3 || textFieldValue.length > 90) {
$.textAreaDescriptionId.height = "80dp";
} else {
$.textAreaDescriptionId.height = Titanium.UI.SIZE;
}
【讨论】:
我会使用这样的东西:
$.textArea.height = $.textArea.font.fontSize * 3 // plus some padding
添加一个填充,否则它会太小。 fontSize * 3 是 3 行的最小值。
编辑
如 cmets 中所述。目前无法在 Titanium 中为 TextField 设置 maxLines。所以它不会动态工作。
Ticket 和 PR 包含此功能:
【讨论】: