用于文本显示的Titanium.UI.TextArea:用于开始从开头读取文本的内容定位

时间:2012-10-08 13:50:38

标签: titanium titanium-mobile

我正在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 |
||__________||      |__________|

我想我的问题有两个:

  • 有没有办法强制TextArea在生成时滚动到顶部?
  • 有没有更好的方法使用钛来完成不可编辑的textView?

- 使用解决方案更新

Martin绝对正确,制作不可编辑的文字以供展示的最佳方法是使用Ti.UI.Label。在我的案例中,一个工作解决方案是用以下代码替换上面的代码:

var explanationView = Titanium.UI.createScrollView()
explanationView.add(Ti.UI.createLabel({text: explanation, color:'black'}))

win.add(explanationView)

2 个答案:

答案 0 :(得分:3)

表示不可编辑的TextArea的更好方法是标签。如果需要,这应该扩展到多行。它也不太可能让用户误以为盒子是你可以编辑的东西,就像普通的textarea条目一样。

不确定图片正在尝试通信的内容。最初看起来我是以错误的顺序将视图和textarea添加到整个视图中,或者将其顶部/底部位置设置错误。

如果您试图同时显示可滚动文本和包含其他内容的视图,我可能会创建一个Scrollable View并将其文本放在具有适当高度设置的文本上,然后让其他视图填充屏幕的其余部分。

每当我在屏幕上创建大量文本或项目时,我的视图尚未滚动到底部。如果我自己向下滚动并重新创建我的获胜/视图,那么我可能会看到这一点。特别是如果我尝试重复使用屏幕上已显示的项目,只需用数据重新加载它们。

答案 1 :(得分:2)

使用标签作为上述解决方案可以解决问题。但是,标签的字符限制较短。在长文本上使用标签会削减文本。通过将editable属性设置为false并将TextArea放在ScrollView中,可以坚持在长文本上使用TextAreas。这将让您看到TextArea的顶部,因为ScrollViews让您可以自由地将项目扩展到设备的视图之外,以及通过代码实现滚动到特定区域的功能。