2012-12-31 36 views
0

如何拉动刷新?拉动以在Android钛金刷新

在钛appcelerator我需要显示在tableview中的内容列表。如果我拉视图,它需要更新。在iPhone中,我完成了,但在Android中它不会工作。请任何人帮助解决Android中的这个问题。

我的Android代码: -

tableView.addEventListener('scroll',function(e) 
{ 
    var offset = e.contentOffset.y; 
    if (offset < -65.0 && !pulling && !reloading) 
    { 
     var t = Ti.UI.create2DMatrix(); 
     t = t.rotate(-180); 
     pulling = true; 
     arrow.animate({transform:t,duration:180}); 
     statusLabel.text = "Release to refresh..."; 
    } 
    else if((offset > -65.0 && offset < 0) && pulling && !reloading) 
    { 
     pulling = false; 
     var t = Ti.UI.create2DMatrix(); 
     arrow.animate({transform:t,duration:180}); 
     statusLabel.text = "Pull down to refresh..."; 
    }  
}); 

tableView.addEventListener('dragEnd', function(e) 
{ 

    if(pulling && !reloading) 
    { 
     reloading = true; 
     pulling = false; 
     arrow.hide(); 
     actInd.show(); 
     statusLabel.text = "Reloading..."; 
     tableView.setContentInsets({top:60},{animated:true}); 
     tableView.scrollToTop(-60,true); 
     arrow.transform=Ti.UI.create2DMatrix(); 
     beginReloading(); 
    } 
}); 
+0

嘿已经想通了? – Tony

回答

0

这只是IOS代码的形式在厨房水槽的例子吗?

虽然我还没有证实它们中的任何一个都能像预期的那样工作,但有一些尝试在Android上运行。从我所了解的问题来看,问题在于你无法像Android一样在Android中获得偏移量。

一个快速的谷歌搜索出现了这个链接,这是从官方的Appcelerator论坛引用的。 https://gist.github.com/903895

+0

我刚试过这个要点,意识到它效率不高。它可能会为小数据列表做伎俩,但iOS和Android中列表组件的强大功能之一是它们在发生滚动时重新循环行,以至于不会超过view + 1中的行数一次。所以,无论你有50行还是1000行,速度都是一样的。在这个Gist的技术要求表是所有行的高度,所以不会发生回收,它会很慢(特别是对于远程图像url)并且需要更多的内存。 –

+0

我希望有时间尝试一下,我认为可以很好地工作的是,从这个Java项目为Titanium创建一个Packaged模块:https://github.com/chrisbanes/Android-PullToRefresh –

+0

答案仅仅是将原始海报指向一个方向。它不是为原始海报做工作,也不是为了提供最有效的解决方案。你是原始的海报吗?您使用了多少个帐户? – Martin