2016-03-29 30 views
3

Geridönüşüm bölümünde 10 öğem olduğunu ve öğe 4 öğelerin geri kalanı için farklı bir görünüm türü olduğunu varsayalım. Öğe 0'ı geri dönüstürme görünümünde sürüklerken, 4. öğe üzerinde bir çıkma ve çıkma etkisi vardır ve bu, öğeleri farklı görünüm tipleriyle değiştirmememizdir. Farklı görünüm tiplerini sürüklerken bağdaştırıcıyı "yenilemekten" kaçınmanın bir yolu var mı?Recyclerview çoklu görünüm türlerini sürükleme

@Override 
public boolean onItemMove(int fromPosition, int toPosition) { 
    Collections.swap(mItems, fromPosition, toPosition); 
    notifyItemMoved(fromPosition, toPosition); 
    return true; 
} 

İşte fromPosition 3'tür ve toPosition 5'tir ama pozisyon 4'te farklı viewType ile bir öğedir.

cevap

0

basit sürükle bırak https://github.com/iPaulPro/Android-ItemTouchHelper-Demo ile bu öğretici göre ben SimpleItemTouchHelperCallback

@Override 
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder source, RecyclerView.ViewHolder target) { 
    if (source.getItemViewType() != target.getItemViewType()) { 
     //return false; //commented here 
    } 

    // Notify the adapter of the move 
    mAdapter.onItemMove(source.getAdapterPosition(), target.getAdapterPosition()); 
    return true; 
} 
içinde bir satır yorumladı zorunda