Android开发中记一个SwipeMenuListView侧滑删除错乱的Bug

 更新时间:2016年09月24日 09:37:35   作者:淘_tao  
这篇文章主要介绍了Android开发中记一个SwipeMenuListView侧滑删除错乱的Bug的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下

做侧滑删除网上有很多方案,比如重写Listview实现滑动的监听,今天说下一个SwipeListView,这个是之前一个朋友在网上开源的一个封装组件,能够适用于多种情况,项目地址:https://github.com/baoyongzhang/SwipeMenuListView,我也采用了拿来主义直接拿来用了。

但是在调试运行的滑动删除数据的时候,却出现了一个问题,删除位置错乱,删除的第一个数据,却删除了最后一个,于是找问题呗,我首先用listview试了下,数据是没有问题的,那么说明是删除的时候删除的控件对位置的计算错误了,先上两张效果图。

那么是什么问题造成的呢,看了一个之前提交的版本(记得之前使用是好的,说明是最近提交的问题,于是发现一个问题,就是SwipeMenuAdapter这个类的getview方法较之前多了一个判断,为了缓存加的,尝试的心态将判断条件去掉,再运行了下,好了,这里贴出部分代码。

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开发中记一个SwipeMenuListView侧滑删除错乱的Bug,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • Android GridView实现横向列表水平滚动

    Android GridView实现横向列表水平滚动

    这篇文章主要为大家详细介绍了Android GridView实现横向列表水平滚动,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • Android实现带有指示器的自定义底部导航栏

    Android实现带有指示器的自定义底部导航栏

    这篇文章主要为大家详细介绍了Android实现带有指示器的自定义底部导航栏,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • Android ActivityManager使用案例详解

    Android ActivityManager使用案例详解

    这篇文章主要介绍了Android ActivityManager使用案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • android 仿微信demo——微信消息界面实现(移动端)

    android 仿微信demo——微信消息界面实现(移动端)

    本系列文章主要介绍了微信小程序-阅读小程序实例(demo),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能给你们提供帮助
    2021-06-06
  • 深入了解Android Okio的超时机制

    深入了解Android Okio的超时机制

    Okio是一个IO库,底层基于Java原生的输入输出流实现。但原生的输入输出流并没有提供超时的检测机制。而Okio实现了这个功能,本文就来为大家详细讲讲
    2023-02-02
  • Android Studio实现补间动画

    Android Studio实现补间动画

    这篇文章主要为大家详细介绍了Android Studio实现补间动画,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • Android 编程下字库的使用及注意事项

    Android 编程下字库的使用及注意事项

    在安卓操作系统下对于 TextView 字体的支持非常有限,默认情况下TextView的typeface属性支持三种字体;接下来本文将会介绍Android 编程下字库的使用及注意事项,感兴趣的朋友可以了解下,希望对你有所帮助
    2013-01-01
  • 详解升级Android Studio3.0时遇到的几个问题

    详解升级Android Studio3.0时遇到的几个问题

    本篇文章主要介绍了升级Android Studio3.0时遇到的几个问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • 解决Android加壳过程中mprotect调用失败的原因分析

    解决Android加壳过程中mprotect调用失败的原因分析

    本文探讨的主要内容是mprotect调用失败的根本原因,以及在加壳实现中的解决方案,通过本文的阐述,一方面能够帮助遇到同类问题的小伙伴解决心中的疑惑,另一方面能够给大家提供可落地的实现方案,需要的朋友可以参考下
    2022-01-01
  • TextView显示系统时间(时钟功能带秒针变化

    TextView显示系统时间(时钟功能带秒针变化

    用System.currentTimeMillis()可以获取系统当前的时间,我们可以开启一个线程,然后通过handler发消息,来实时的更新TextView上显示的系统时间,可以做一个时钟的功能
    2013-11-11

最新评论