場景:當RecyclerView列表中的項須要高頻率的刷新時,因爲itemview的從新繪製和設置致使item出現閃爍。 而實際item上高頻率變動的僅僅是一兩個控件。java
解決方案:ide
數據更新時,使用notifyItemChanged(int position, Object payload)方法,在adapter的實現中重寫以下方法code
@Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position, List<Object> payloads) { if(payloads == null || payloads.isEmpty()) { super.onBindViewHolder(holder, position, payloads); } else { //僅更新個別控件 setSpeed(holder, getItem(position)); } }
以上僅僅只是示例,具體更新時能夠傳遞你須要的payload對象到adapter中強制轉換來更新某些控件,完全解決item刷新時的閃爍問題對象