0

我有一个滚动视图,定义如下:

var view = Ti.UI.createScrollView({
    height: '100%',
    width: '100%',
    contentHeight: 'auto', 
    backgroundColor: '#fff',
    showVerticalScrollIndicator: true,
    layout: 'vertical'
});

在滚动视图的底部,我有一个表格视图。用户可以按一个按钮在表格视图的顶部插入一个新行。但是,当他们这样做时,滚动视图的内容区域不会增长,因此第一行(在表格视图的底部)不再显示。每次用户添加新行时,底部最旧的行不再显示。

如果我明确设置 contentHeight,那么我可以在每次用户添加新行时添加行的大小。我宁愿不这样做。

有没有办法自动增长滚动视图以适应它的孩子,包括新的表格视图行?

4

3 回答 3

1

如果您使用的是旧版本的钛,您可以使用 postLayout 回调来适当地更新高度

http://docs.appcelerator.com/titanium/2.0/#!/guide/Transitioning_to_the_New_UI_Layout_System-section-30088148_TransitioningtotheNewUILayoutSystem-BatchLayoutUpdates

如果您使用的是更新版本,那么您应该查看此文档。特别是关于 Batch Layout Updates 和 view 对象上 applyProperties 调用的使用

http://docs.appcelerator.com/titanium/latest/#!/guide/Transitioning_to_the_New_UI_Layout_System

于 2013-09-09T05:17:57.353 回答
0

表格视图的高度是多少?我不认为表格视图会随着新行的插入而“增长”。它保持相同的大小,但您可以滚动其内容。只是为了测试,尝试在添加行之前和之后记录表视图的高度。

此外,您可能知道,将可滚动项目作为另一个可滚动项目内的表格视图并不是最好的。

于 2013-09-08T20:45:53.197 回答
0

tableview 确实增长到适合它的孩子。但是,如果您将 tableview 数据设置为

tableView.data = data;

它不会重新计算高度。相反,您必须删除所有行并使用该appendRow方法,或者如果您只需要将一行添加到表的末尾(而不是开头),您可以使用该appendRow方法而无需先删除所有行。

于 2013-09-08T22:24:01.170 回答