请教一下listcontainer怎么设置item的左右滑动事件?

listcontainer
2021-09-22 22:46:12
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
红叶亦知秋
5

item的左右滑动,楼主可以尝试下设置setDraggedListener,代码样例如下

private Point componentpoint;
convertView.setDraggedListener(Component.DRAG_HORIZONTAL,new Component.DraggedListener() {
                @Override
                public void onDragDown(Component component, DragInfo dragInfo) {
                        LogUtil.info(TAG,"---onDragDown---"+dragInfo.downPoint.getPointX());
                }
                @Override
                public void onDragStart(Component component, DragInfo dragInfo) {
                    LogUtil.info(TAG,"---onDragStart---"+dragInfo.startPoint.getPointX());
                    pointStart = dragInfo.startPoint;
                    LogUtil.info(TAG,"onDragStart::component.getContentPositionX():"+component.getContentPositionX());
                    componentpoint = new Point(component.getContentPositionX(),component.getContentPositionY());
                }
                @Override
                public void onDragUpdate(Component component, DragInfo dragInfo) {
                    LogUtil.info(TAG,"---onDragUpdate---"+dragInfo.updatePoint.getPointX());
                    float xOffset = dragInfo.updatePoint.getPointX() - pointStart.getPointX();
                    LogUtil.info(TAG,"onDragUpdate::component.getContentPositionX():" + component.getContentPositionX());
                    if((componentpoint.getPointX() + xOffset) > 0 ) {
                        component.setContentPosition(componentpoint.getPointX() + xOffset, componentpoint.getPointY());
                        componentpoint = new Point(component.getContentPositionX(),component.getContentPositionY());
                    }
                }
                @Override
                public void onDragEnd(Component component, DragInfo dragInfo) {
                    float xOffset = dragInfo.updatePoint.getPointX() - pointStart.getPointX();
                    LogUtil.info(TAG,"onDragEnd::xOffset:" + xOffset);
                    if((componentpoint.getPointX() + xOffset) > 0 && (componentpoint.getPointX() + xOffset) < screenWidth / 2) {
                        component.setContentPosition(0, componentpoint.getPointY());
                    } else if ((componentpoint.getPointX() + xOffset) > 0 && (componentpoint.getPointX() + xOffset) >=  screenWidth / 2) {
                        deleteItem(position);
                    }
                    LogUtil.info(TAG,"onDragEnd::componentpoint.getPointX():"+componentpoint.getPointX());
                }
                @Override
                public void onDragCancel(Component component, DragInfo dragInfo) {
                    LogUtil.info(TAG,"---onDragCancel---"+dragInfo.updatePoint+"::"+dragInfo.xOffset);
                }
                @Override
                public boolean onDragPreAccept(Component component, int dragDirection) {
                    return true;
                }
已于2021-9-24 17:06:05修改
分享
微博
QQ
微信
回复
2021-09-24 16:13:20
相关问题
请教一下关于Ticktimer 疑问?
1518浏览 • 1回复 待解决
ListContainerItem能取消拖拽吗
3419浏览 • 1回复 待解决
如何屏蔽List滑动事件
175浏览 • 1回复 待解决
ob有如何报错,麻烦帮忙看一下
2717浏览 • 1回复 待解决
能否审核一下传上去文档
1026浏览 • 5回复 待解决
编译OpenHarmony2.0失败,求助一下
6995浏览 • 3回复 已解决
分享一下鸿蒙系统使用感受吧
2318浏览 • 1回复 待解决