3

我正在 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)
4

2 回答 2

3

表示不可编辑的 TextArea 的更好方法是标签。如果需要,这应该扩展到多行。也不太可能让用户误以为该框是您可以像普通文本区域条目一样编辑的东西。

不太确定这些图片试图传达什么。最初,在我看来,您正在以错误的顺序将视图和文本区域添加到整体视图中,或者它们的顶部/底部位置设置错误。

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

每当我在屏幕上创建大量文本或项目时,我的视图还没有滚动到底部。如果我在自己向下滚动之后不破坏并重新创建我的胜利/视图,那么我可能会看到这一点。特别是如果我尝试重用屏幕上已经显示的项目并重新加载数据。

于 2012-10-08T21:08:58.163 回答
2

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

于 2012-11-13T06:25:02.543 回答