2012-12-31 57 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