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

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

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
相关问题
ListContainerItem能取消拖拽吗
1763浏览 • 1回复 待解决
list-item 根据boolean属性 动态设置class
1273浏览 • 1回复 待解决
ob有如何报错,麻烦帮忙看一下
169浏览 • 1回复 待解决
请问一下鸿蒙pad应用该如何签名?
2230浏览 • 1回复 待解决
编译OpenHarmony2.0失败,求助一下
4595浏览 • 3回复 已解决
创严标客怎么样?有老铁解答一下
4102浏览 • 1回复 待解决
listContainer怎么通过addComponent添加布局
4128浏览 • 1回复 待解决
服务卡片java如何设置点击事件
3870浏览 • 1回复 待解决
position:absoluteclick事件无效吗?
1247浏览 • 1回复 待解决