我有一个tableview,其中一行包含一个按钮。当用户按下按钮时,我会在包含文本区域的表中附加一行。我希望新行位于tableview的顶部,键盘打开。这是我尝试过的:
function addNewComment() {
var newComment = new NewComment(tableView.data[0].rows.length);
//I add the spacer so that if the added row is the last in the table, it can still be at the top of the view
var spacer = Ti.UI.createTableViewRow({
height:250,
backgroundColor: 'white'
});
//There are 6 rows of information in the table before the comments start
tableView.appendRow(spacer, {animated:false});
tableView.insertRowAfter(5, newComment, {animationStyle:Titanium.UI.iPhone.RowAnimationStyle.DOWN});
//The listener for this just focuses the text area
Ti.App.fireEvent('newCommentAddedToView');
tableView.scrollToIndex(6,{animated:true,position:Ti.UI.iPhone.TableViewScrollPosition.TOP});
}
当它运行时,就好像没有调用方法的最后一行。新行滚动到视图中,但不是一直到顶部。它只会滚动到视图中,以便查看您在文本区域中键入的内容。然后,您可以手动滚动该行,使其与顶部对齐,但我想自动执行此操作。有没有办法实现这个目标?
提前致谢。
答案 0 :(得分:0)
将焦点设置在TextField或TextArea上会触发滚动到您键入的位置。尝试在TextArea中设置焦点后调用scrollToIndex。