1. 程式人生 > >關於RecyclerView嵌套導致item復用異常,界面異常的問題

關於RecyclerView嵌套導致item復用異常,界面異常的問題

bsp 方法 chan ret style chang 執行 問題 ram

常規需求:

外層RecyclerView嵌套內層RecyclerView , 在上下滑動的時候會出現item數據以及view的顯示異常。

解決辦法:

1、重寫 getItemViewType 方法

    /**
     * 重寫 避免滑動過程界面混亂
     * @param position
     * @return
     */
    @Override
    public int getItemViewType(int position) {
        return position;
    }

2、因為是RecyclerView的復用機制導致的問題,可以暴力解決,禁止RecyclerView的復用,則不會出現view的異常

  使用方法:

  在 protected void convert()方法中執行

.setIsRecyclable(false); // 禁止復用

  註意,禁止復用會導致性能過低,若是列表中沒有圖片等耗性能需求,則可以考慮使用

禁用復用會導致remove() notifyItemRemoved() notifyItemRangeChanged()等一系列刷新刪除操作出現異常,若有該需求,則不適用該方法

  

關於RecyclerView嵌套導致item復用異常,界面異常的問題