我的滚动视图定义如下:
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行?
答案 0 :(得分:1)
如果你使用的是旧版本的钛,你可以使用postLayout回调来适当地更新高度
如果您使用的是更新版本,则应查看此文档。特别关注批处理布局更新和使用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
方法即可首先删除所有行。