我在xamarin表單中有一個相對簡單的應用程序,它具有帶自定義單元格的ListView。在這些細胞中,有一個圖像。我遇到的問題是這個。當我滾動ListView時,在加載新圖像之前,我可以看到之前單元格的圖像。在Xamarin表單中停止單元格回收ListView
我試圖設置ListView的ListViewCachingStrategy
所有可能的值,但問題依然存在。
有沒有辦法阻止回收?我知道這是一個性能問題,但名單並不那麼大。當然,除非有更好的方法來阻止這個圖像問題
我在xamarin表單中有一個相對簡單的應用程序,它具有帶自定義單元格的ListView。在這些細胞中,有一個圖像。我遇到的問題是這個。當我滾動ListView時,在加載新圖像之前,我可以看到之前單元格的圖像。在Xamarin表單中停止單元格回收ListView
我試圖設置ListView的ListViewCachingStrategy
所有可能的值,但問題依然存在。
有沒有辦法阻止回收?我知道這是一個性能問題,但名單並不那麼大。當然,除非有更好的方法來阻止這個圖像問題
您可以使用綁定替代OnBindingContextChanged
ViewCell的方法。類似的東西:
protected override void OnBindingContextChanged()
{
image.Source = null;
base.OnBindingContextChanged();
var item = BindingContext as YourItemType;
if (item == null)
return;
image.Source = item.YourImageSource;
}
我還沒有明確地嘗試過,但是如果你在ListView上附加了ItemDisappearing事件。
然後獲取e.Item並清除圖像,以便它應該用空白的方式更新單元格中的圖像。
然後,當它再次回到視圖中時,在裝入新的東西之前它應該是空白的。
我可以嘗試和調整,使之適合我的應用程序。我會盡快給您回覆。 –
我們對這個問題做了什麼是將綁定圖像設置爲空值,而用戶正在滾動這個強制圖像再次渲染,這不是一個好的解決方案,但它的工作原理。
爲什麼你不使用綁定? –
我更新了我的答案。 –