ListView的刪除動畫,支持多條,單條刪除
ListView的item刪除動畫,支持多條,單條刪除
預覽效果:
使用方法:
使用FlingDismissListener和MyListViewWrapper將ListView包裝起來,然后使用FlingDismissListener操作item的消失如:
FlingDismissListener flingDismissListener = new FlingDismissListener(MyListViewWrapper wrapper,OnDismissCallback callBack);//OnDismissCallback是用來在動畫結束時,刪除真正數據的回調 flingDismissListener.dismissOne(int position,Object item);//刪除一條,這里的第二個參數是要刪除的對象(因為刪除多條數據時position會變化,所以使用對象來從list中刪除)
ArrayList<FlingDismissListener.DeleteItemWrapper> deleteItems = new ArrayList<FlingDismissListener.DeleteItemWrapper>();
for(int i = 0;i<strs.size();i++){
deleteItems.add(new FlingDismissListener.DeleteItemWrapper(i,strs.get(i)));
}
flingDismissListener.dismiss(deleteItems);//刪除多條數據,每個item都要用DeleteItemWrapper包裝一下.
@Override
public void onDismiss(@NonNull ViewGroup listView, @NonNull FlingDismissListener.DeleteItemWrapper[] reverseSortedPositions) {//在動畫消失時,要被刪掉的數據將會以DeleteItemWrapper的數組形式傳進來.
//當item刪除動畫結束時執行這里
for (FlingDismissListener.DeleteItemWrapper deleteItem : reverseSortedPositions){
//由于每次刪除一些item所在的position都會改變,所以必須使用對象來刪除.
strs.remove(deleteItem.item);
}
adapter.notifyDataSetChanged();
} 本文由用戶 pcbbe 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!
