2016-01-04 49 views
4

我在xamarin表單中有一個相對簡單的應用程序,它具有帶自定義單元格的ListView。在這些細胞中,有一個圖像。我遇到的問題是這個。當我滾動ListView時,在加載新圖像之前,我可以看到之前單元格的圖像。在Xamarin表單中停止單元格回收ListView

我試圖設置ListView的ListViewCachingStrategy所有可能的值,但問題依然存在。

有沒有辦法阻止回收?我知道這是一個性能問題,但名單並不那麼大。當然,除非有更好的方法來阻止這個圖像問題

回答

2

您可以使用綁定替代OnBindingContextChanged ViewCell的方法。類似的東西:

protected override void OnBindingContextChanged() 
{ 
    image.Source = null; 

    base.OnBindingContextChanged(); 

    var item = BindingContext as YourItemType; 

    if (item == null) 
     return; 

    image.Source = item.YourImageSource; 
} 

在這裏閱讀更多:https://developer.xamarin.com/guides/xamarin-forms/user-interface/listview/performance/#RecycleElement

+0

爲什麼你不使用綁定? –

+0

我更新了我的答案。 –

1

我還沒有明確地嘗試過,但是如果你在ListView上附加了ItemDisappearing事件。

然後獲取e.Item並清除圖像,以便它應該用空白的方式更新單元格中的圖像。

然後,當它再次回到視圖中時,在裝入新的東西之前它應該是空白的。

+0

我可以嘗試和調整,使之適合我的應用程序。我會盡快給您回覆。 –

0

我們對這個問題做了什麼是將綁定圖像設置爲空值,而用戶正在滾動這個強制圖像再次渲染,這不是一個好的解決方案,但它的工作原理。

相關問題