Android開發(fā)中記一個SwipeMenuListView側(cè)滑刪除錯亂的Bug
做側(cè)滑刪除網(wǎng)上有很多方案,比如重寫Listview實現(xiàn)滑動的監(jiān)聽,今天說下一個SwipeListView,這個是之前一個朋友在網(wǎng)上開源的一個封裝組件,能夠適用于多種情況,項目地址:https://github.com/baoyongzhang/SwipeMenuListView,我也采用了拿來主義直接拿來用了。
但是在調(diào)試運行的滑動刪除數(shù)據(jù)的時候,卻出現(xiàn)了一個問題,刪除位置錯亂,刪除的第一個數(shù)據(jù),卻刪除了最后一個,于是找問題唄,我首先用listview試了下,數(shù)據(jù)是沒有問題的,那么說明是刪除的時候刪除的控件對位置的計算錯誤了,先上兩張效果圖。
那么是什么問題造成的呢,看了一個之前提交的版本(記得之前使用是好的,說明是最近提交的問題,于是發(fā)現(xiàn)一個問題,就是SwipeMenuAdapter這個類的getview方法較之前多了一個判斷,為了緩存加的,嘗試的心態(tài)將判斷條件去掉,再運行了下,好了,這里貼出部分代碼。
public View getView(int position, View convertView, ViewGroup parent) {
SwipeMenuLayout layout = null;
// if (convertView == null) {
View contentView = mAdapter.getView(position, convertView, parent);
SwipeMenu menu = new SwipeMenu(mContext);
menu.setViewType(getItemViewType(position));
createMenu(menu);
SwipeMenuView menuView = new SwipeMenuView(menu,
(SwipeMenuListView) parent);
menuView.setOnSwipeItemClickListener(this);
SwipeMenuListView listView = (SwipeMenuListView) parent;
layout = new SwipeMenuLayout(contentView, menuView,
listView.getCloseInterpolator(),
listView.getOpenInterpolator());
layout.setPosition(position);
// } else {
// layout = (SwipeMenuLayout) convertView;
// layout.closeMenu();
// layout.setPosition(position);
//// View view = mAdapter.getView(position, layout.getContentView(),
//// parent);
// }
if (mAdapter instanceof BaseSwipListAdapter) {
boolean swipEnable = (((BaseSwipListAdapter) mAdapter).getSwipEnableByPosition(position));
layout.setSwipEnable(swipEnable);
}
return layout;
}
以上所述是小編給大家介紹的Android開發(fā)中記一個SwipeMenuListView側(cè)滑刪除錯亂的Bug,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
- android ItemTouchHelper實現(xiàn)可拖拽和側(cè)滑的列表的示例代碼
- Android高仿QQ6.0側(cè)滑刪除實例代碼
- Android仿QQ微信側(cè)滑刪除效果
- Android recyclerview實現(xiàn)拖拽排序和側(cè)滑刪除
- Android 模仿QQ側(cè)滑刪除ListView功能示例
- Android自定義view系列之99.99%實現(xiàn)QQ側(cè)滑刪除效果實例代碼詳解
- android的RecyclerView實現(xiàn)拖拽排序和側(cè)滑刪除示例
- android ListView和GridView拖拽移位實現(xiàn)代碼
- android 大圖片拖拽并縮放實現(xiàn)原理
- Android使用ItemTouchHelper實現(xiàn)側(cè)滑刪除和拖拽
相關(guān)文章
Android GridView實現(xiàn)橫向列表水平滾動
這篇文章主要為大家詳細介紹了Android GridView實現(xiàn)橫向列表水平滾動,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-07-07
android 仿微信demo——微信消息界面實現(xiàn)(移動端)
本系列文章主要介紹了微信小程序-閱讀小程序?qū)嵗╠emo),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望能給你們提供幫助2021-06-06
解決Android加殼過程中mprotect調(diào)用失敗的原因分析
本文探討的主要內(nèi)容是mprotect調(diào)用失敗的根本原因,以及在加殼實現(xiàn)中的解決方案,通過本文的闡述,一方面能夠幫助遇到同類問題的小伙伴解決心中的疑惑,另一方面能夠給大家提供可落地的實現(xiàn)方案,需要的朋友可以參考下2022-01-01
TextView顯示系統(tǒng)時間(時鐘功能帶秒針變化
用System.currentTimeMillis()可以獲取系統(tǒng)當前的時間,我們可以開啟一個線程,然后通過handler發(fā)消息,來實時的更新TextView上顯示的系統(tǒng)時間,可以做一個時鐘的功能2013-11-11

