2016-04-07 115 views
1

我使用Fresco在Recyclerview中加載gif。使用Fresco在RecyclerView中閃爍的Gif

這裏是我的科特林代碼:

fun loadResizeImage(uri: Uri, view: SimpleDraweeView, width: Int, height: Int) { 
    val request = ImageRequestBuilder.newBuilderWithSource(uri) 
      .setResizeOptions(ResizeOptions(width, height)).build() 

val controller = Fresco.newDraweeControllerBuilder() 
     .setOldController(view.controller) 
     .setImageRequest(request) 
     .build() 
view.controller = controller 

我不玩GIF,我只是加載它爲靜態圖像。但是當我調用notifydatasetchanged時,gif閃爍。 我已將supportsChangeAnimations設置爲false,並且只有gif閃爍。誰能幫我?

+0

你正在重新設置一個控制器。如果控制器的uri沒有改變,你可以避免這樣做,以防止閃爍。 – Droidekas

+0

我可以將uri設置爲視圖的標記。如果標記等於uri,那麼我只是不在塊中執行這些操作? –

+0

是的,可以工作 – Droidekas

回答

0

我的解決方案是設置標籤的視圖,如果標籤等於uri我不會重新加載圖像。但我發現當我調用notifyDataSetChange時,我設置爲視圖的標籤被改變了。但是當我調用notifyItemChanged時,它並沒有。我不知道標籤爲什麼改變了(我沒有滾動RecyclerView)。

+0

r u固定。我也面臨同樣的問題..如何設置標籤.. ??幫我 –