[英]Sencha Touch list and scrollToRecord
我的Sencha触摸列表很长,我拼命尝试在启动时将该列表滚动到中间的某个位置。
功能
btnScroll:function() {
var list = Ext.getCmp("myList");
var position = 4;
list.scrollToRecord(list.getStore().getAt(position));
}
如果我点击按钮,则可以工作: scrollBtn.setHandler(btnScroll);
,但不适用于
MyList.constructor:function() {
...
this.callParent();
this.btnScroll();
}
它只是失败而没有错误消息。 如果在调用函数中执行同样的操作:
btnOpenList:function() {
var list = new MyList();
list.show();
list.btnScroll();
}
如果我使用setTimeout(this.btnScroll,70);
它有时会起作用(! setTimeout(this.btnScroll,70);
相反,但是如果我使用setTimeout(this.btnScroll,50);
或setTimeout(this.btnScroll,120);
我认为发生这种情况是因为列表元素未呈现/定位。 但是我没有发现任何后退事件。
那么,如何定义列表应从其开始的滚动位置?
您可以在彩绘事件中做到这一点。 只需将其添加到包含绑定绘画事件所需的所有组件的列表或容器中,然后在列表中将事件添加到btn ..或模板所需的任何内容即可。
element.clearListeners();
element.addListener('tap',function(){
//...
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.