位置: 编程技术 - 正文

android draglistview中拖动异常显示,无法移动到原先位置

编辑:rootadmin

推荐整理分享android draglistview中拖动异常显示,无法移动到原先位置,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

这几天在网上找了draglistview可拖动的列表组件,写demo时发现列表在同方向拖动时没有问题,但在拖动中改变方向,如先向上后向下这样就会出现移动到原来位置时,listview不再出现实时移动效果,打了log观察后发现在启动动画之前会有

int tempPosition = pointToPosition(0, y);if (tempPosition == INVALID_POSITION || tempPosition == lastPosition) {return;}

这样的判断,再拖动回原先位置时获取的tempPosition一直为-1,即移动到了不可用的listview的item上,导致直接返回,也就不进行相应的item位置交换。查看代码后发现在listview getView中是这样写的

android draglistview中拖动异常显示,无法移动到原先位置

convertView = LayoutInflater.from(context).inflate(R.layout.drag_list_item, null);

//将正在拖动的item直接隐藏或不可见

convertView.setVisibility(View.GONE/INVISIBLE)

这样处理会导致pointToPosition(0, y);&#;永远为-1,思来想去也没有好方法,“曲线救国”直接将item隐藏于背景中view.setImageResource(android.R.color.darker_gray)解决这一问题。

方法不是很好,但暂时解决了

Android 自定义ListView 实现下拉刷新 上拉加载功能 效果图思考Listview是viewGroup的子类,它本身提供了方法addHeaderView(Viewview),addFooterView(Viewview)去添加头布局和底布局,所以我们只要监听它的onTouchEv

androidのLinearLayout中组件右对齐 androidのLinearLayout中组件右对齐在LinearLayout中,如果将其定位方向设为横向排列:android:orientation=horizontal,那么这个布局中的控件将自左向右排列。但有

Android学习 - Android最佳性能实践 (一)合理管理内存怎样才能写出高性能的应用程序,如何避免程序出现OOM,或者当程序内存占用过高的时候该怎么样去排查。确实,一个优秀的应用程序

本文链接地址:https://www.jiuchutong.com/biancheng/384220.html 转载请保留说明!

上一篇:ImageView的android:maxHeight,android:minHeight的正确设置

下一篇:Android 自定义ListView 实现下拉刷新 上拉加载功能(android 自定义linearlayout 宽度计算不对)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络