在我的應用程式中,我在回收器視圖中顯示按鈕串列,在 ItemTouchHelper.SimpleCallback 的幫助下,onMove 函式我能夠重新排序按鈕,但重新排序后位置不會更新。例如:-(如果我將 button1 從 0 位置拖到 1 位置,則 button1 應該顯示它的新位置是 1,但它顯示的是舊位置,即 0)是否有任何變化以便我可以訪問它并獲得知道我的按鈕的新位置。任何幫助,將不勝感激。
ItemTouchHelper.SimpleCallback simpleCallback = new ItemTouchHelper.SimpleCallback(ItemTouchHelper.UP
| ItemTouchHelper.DOWN | ItemTouchHelper.START | ItemTouchHelper.END , 0) {
@Override
public boolean onMove(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder, @NonNull RecyclerView.ViewHolder target) {
int fromPosition = viewHolder.getAdapterPosition();
int toPosition = target.getAdapterPosition();
Collections.swap(datalist,fromPosition,toPosition);
recyclerView.getAdapter().notifyItemMoved(fromPosition,toPosition);
return false;
}
@Override
public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int direction) {
}
};
uj5u.com熱心網友回復:
我通過通知配接器中設定的整個資料解決了這個問題
這是
Collections.swap(datalist,fromPosition,toPosition);
recyclerView.getAdapter().notifyItemMoved(fromPosition,toPosition);
recyclerView.getAdapter().notifyDataSetChanged()
return false;
uj5u.com熱心網友回復:
這應該根據它們的新位置更新視圖。這是一個專案更改事件,而不是結構更改事件。它表明位置資料的任何反映都已過時,應進行更新。
recyclerView.getAdapter().notifyDataSetChanged();
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/361200.html
