添加TableViewRow时,Titanium ScrollView不会增长

时间:2013-09-08 18:09:53

标签: ios titanium scrollview tableview appcelerator

我的滚动视图定义如下:

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

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

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

有没有办法自动增长scrollview以适应它的子项,包括新的tableview行?

3 个答案:

答案 0 :(得分:1)

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

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

如果您使用的是更新版本,则应查看此文档。特别关注批处理布局更新和使用applyProperties调用视图对象

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

答案 1 :(得分:0)

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

另外,正如您所知,在另一个可滚动项目中将可滚动项目作为tableview不是最好的。

答案 2 :(得分:0)

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

tableView.data = data;

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