我正在Appcellerator Titanium中构建一个标签式移动应用程序 我需要用一个大的文本段填充一个选项卡,并使用TextArea来执行此操作:
var explanationView = Ti.UI.createTextArea({
enabled: false,
editable: false,
color: 'black',
value: explanation
});
这会显示我想要的文字。但是,当内容太长而无法显示时,它会显示内容的后半部分,强制用户向上滚动以查找文本的开头。
What I get: What I want:
__________ ______________
| CONTENT | || ||
_|__________|_ || VIEW ||
|| || ||__________||
|| VIEW || | Content |
||__________|| |__________|
我想我的问题有两个:
- 使用解决方案更新
Martin绝对正确,制作不可编辑的文字以供展示的最佳方法是使用Ti.UI.Label
。在我的案例中,一个工作解决方案是用以下代码替换上面的代码:
var explanationView = Titanium.UI.createScrollView()
explanationView.add(Ti.UI.createLabel({text: explanation, color:'black'}))
win.add(explanationView)
答案 0 :(得分:3)
表示不可编辑的TextArea的更好方法是标签。如果需要,这应该扩展到多行。它也不太可能让用户误以为盒子是你可以编辑的东西,就像普通的textarea条目一样。
不确定图片正在尝试通信的内容。最初看起来我是以错误的顺序将视图和textarea添加到整个视图中,或者将其顶部/底部位置设置错误。
如果您试图同时显示可滚动文本和包含其他内容的视图,我可能会创建一个Scrollable View并将其文本放在具有适当高度设置的文本上,然后让其他视图填充屏幕的其余部分。
每当我在屏幕上创建大量文本或项目时,我的视图尚未滚动到底部。如果我自己向下滚动并重新创建我的获胜/视图,那么我可能会看到这一点。特别是如果我尝试重复使用屏幕上已显示的项目,只需用数据重新加载它们。
答案 1 :(得分:2)
使用标签作为上述解决方案可以解决问题。但是,标签的字符限制较短。在长文本上使用标签会削减文本。通过将editable属性设置为false并将TextArea放在ScrollView中,可以坚持在长文本上使用TextAreas。这将让您看到TextArea的顶部,因为ScrollViews让您可以自由地将项目扩展到设备的视图之外,以及通过代码实现滚动到特定区域的功能。