ListView的刪除動畫,支持多條,單條刪除

pcbbe 10年前發布 | 13K 次閱讀 ListView Android開發 移動開發

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();

}

項目主頁:http://www.baiduhome.net/lib/view/home/1443348878914

 本文由用戶 pcbbe 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!