我使用帶有網格視圖的回收站視圖(每個項目包含一個網格)和縮略圖圖像在視圖中添加圖像後開始上傳,我需要更改一些值(狀態)在模型中開始和完成上傳。 什麼我目前做的是變化值模型,並呼籲notifyDataSetChanged,但它會導致慢下來的應用程序(掛起一些時間),因爲它的更新列表中的所有子:( 任何一個可以幫我這個?如何刷新適配器中的數據,而無需調用notifyDataSetChanged
回答
呼叫notifydatasetchanged()僅用於特定的GridView適配器。切勿notifydatasetchanged()爲完整的recyclerview適配器調用。
嘗試重新設定它的適配器。
gridview.setAdapter(適配器) -passing新list to your adapter。
@nikhil比它不會讓我向下滾動,保持設置適配器。 – Ankit
我相信notifyDataSetChanged
更新所有的值,無論他們是否有變化,這就是爲什麼它很慢。我建議你嘗試使用notifyItemChanged(int position)
。
根據recyclerview docs這是notifyDataSetChanged
做:
此事件不會指定有關數據集發生了什麼變化,迫使任何觀察家認爲所有現有項目和結構可能不再有效。 LayoutManagers將被迫完全重新綁定並重新佈局所有可見的視圖。
老問題,但類似於我正在經歷的。 更改列表詳細信息時,RecyclerView通常非常快速。但是,如果你不在乎,操縱很多圖像可能會讓它變慢。
我建議您嘗試刪除圖像並重復它,以便您可以看到是否如此緩慢。我懷疑這會快很多。
如果是這樣,請確保您正在處理UI線程中的圖像。 Android文檔建議您使用Glide等庫來處理圖像的二次採樣,以確保其尺寸合適。
希望有幫助!
- 1. 如何修改適配器數據Withoud調用notifyDataSetChanged
- 2. 如何從另一個活動調用ListView適配器進行刷新 - notifyDataSetChanged()
- 3. notifyDataSetChanged()無法更新適配器onClick
- 4. 從適配器內調用notifyDataSetChanged失敗
- 5. 如何插入表中的數據,而無需刷新它
- 6. 通數據而無需刷新視圖
- 7. ListView獲取更新,而無需調用notifyDataSetChanged
- 8. 安卓更新imageview後適配器notifyDataSetChanged
- 9. 如何刷新其適配器的listView
- 10. 如何從自定義適配器調用notifyDataSetChanged()?
- 11. jQuery FullCalendar如何在ajax調用後顯示數據而無需刷新頁面
- 12. 如何我適配器瞭解notifydatasetchanged
- 13. 適配器notifyDataSetChanged只適用於postDelayed
- 14. notifyDatasetChanged()不適用於適配器
- 15. Android如何調用notifyDataSetChanged刷新AsyncTask中的列表onPostExecute
- 16. 如何從視圖刷新數據而無需刷新整個頁面?角度
- 17. notifyDataSetChanged();不刷新
- 18. 重新加載數據表而無需使用ajax刷新
- 19. 訪問數據庫直播/無需刷新瀏覽器,而AJAX
- 20. 數組適配器NotifyDataSetChanged()NullPointerException Android
- 21. 而無需刷新頁面
- 22. 如何刷新數據而無需使用data-bind重新加載頁面
- 23. 取出由數據存儲數據,而無需刷新頁面
- 24. 如何將JSON數據從MVC4傳遞到Flot而無需編寫適配器
- 25. Android的ListView適配器錯誤調用notifyDataSetChanged,Android的錯誤?
- 26. 如何刷新listView(帶適配器)後androidnd回調
- 27. 如何刷新數據庫中的單個值,而無需刷新文件中的網頁PHP
- 28. 如何顯示插入的查詢數據,而無需使用ajax刷新jquery
- 29. IllegalStateException:不調用適配器的內容PagerAdapter#notifyDataSetChanged
- 30. notifyDataSetChanged()不會在繪製到LinearLayout的適配器上調用getView()
所有的值都改變了,或者只有一些值? – hehe
@gj一次一個項目的值從網格改變。 – Ankit
還有其他方法,如notifydatarangeinserted。,notifyItemChanged(int position,Object payload)檢查文檔http://developer.android.com/intl/es/reference/android/support/v7/widget/RecyclerView.Adapter.html/ – Raghunandan