1

我正在研究Titanium 2.1.3併爲iOS和Android進行部署。 我在TableView中的Android上的ImageView上顯示圖像時遇到了麻煩,如果我點擊搜索欄並顯示鍵盤,然後顯示圖像或者如果我滾動TableView圖像出現和消失,沒有明顯的原因。看來,除非我做了強制在TableView上刷新佈局的東西,否則圖像不會呈現。 的圖片加載同樣的方式在Android和iOS版,這是這樣的:爲什麼Android中的圖像沒有顯示在TableView上?

var itemIconHolder = Titanium.UI.createView({ 
    width : '100dp', 
    left : '55dp', 
    height : "100%" 
}); 

var itemIcon = Titanium.UI.createImageView({ 
    left : '0dp', 
    height : '100%', 
}); 

var f = Titanium.Filesystem.getFile(Titanium.Filesystem.applicationDataDirectory, "thumb-" + filename); 
itemIcon.image = f; 

itemIconHolder.add(itemIcon); 

此問題不會在iOS的發生,在iOS設備/仿真器的行爲是正常和完美,但它發生的Android設備/模擬器。 我必須在Android中以不同的方式加載圖像嗎?我錯過了什麼嗎?我希望有人能幫助我。 在此先感謝。

編輯

我嘗試這些方法:

itemIcon.image = f.read(); 

itemIcon.image = Titanium.Filesystem.getFile(Titanium.Filesystem.applicationDataDirectory, "thumb-" + filename); 

,但仍然沒有渲染,直到我做的東西,使TableView中以刷新圖像某種方式。

+0

你試過'itemIcon.image = f.read();'? –

+0

是的,我也試過,但它沒有改變任何東西。 –

+0

你爲什麼使用2.1.3?這是非常古老的,從那時起,已經有很多與tableViews相關的bug被修復了。我建議你看一看應用程序JIRA。在另一個現在,你可以在你的tableView代碼 –

回答

0

我在Android上發現了這個特殊問題的解決方法。 由於需要對圖像進行佈局刷新才能正確渲染,因此我所做的就是對錶格進行動畫處理,將其沿着一個方向移動,並在所有動畫完成時移動它,然後再次將其恢復到原始位置。這是我使用的代碼:

var table_bottom = '-1dp' 

var tableAnimation = Ti.UI.createAnimation({ 
    bottom : table_bottom, 
    duration : 100 
}); 
tableAnimation.addEventListener('complete', function(e){ 
    var table_bottom = '50dp'; 
    if (osname === 'android') 
    { 
     table_bottom = '0dp' 
    } 
    table.animate({ 
     bottom : table_bottom, 
     duration : 100 
    }); 
}); 

我已經遇到了鈦SDK 2.1.3和鈦3.0這種類型的問題。

相關問題