xue5455 / SmartMenu

A beautiful floating menu

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

这个库还在维护吗,我在修改功能时遇到了一些无法解决的问题

AlantSjx opened this issue · comments

我将原有重写的onClick方法内容全部注释,并重写了SmartMenu类的onInterceptTouchEvent方法:
@Override public boolean onInterceptTouchEvent(MotionEvent event) { int x = (int) event.getRawX(); int y = (int) event.getRawY(); switch (event.getAction()) { case MotionEvent.ACTION_DOWN: lastX = x; lastY = y; lastDownX = x; lastDownY = y; break; case MotionEvent.ACTION_MOVE: int dx = x - lastX; int dy = y - lastY; int left = getLeft() + dx; int top = getTop() + dy; int right = getRight() + dx; int bottom = getBottom() + dy; layout(left, top, right, bottom); lastX = x; lastY = y; break; case MotionEvent.ACTION_UP: lastX = x; lastY = y; if (lastDownX==x&&lastDownY==y){ toggle(); } break; } return false; }
我重写的目的是:长按该组件可以进行拖动,单击组件触发toggle()方法将菜单收拢。但在实际测试中,拖动功能是正常的,但无论是将菜单进行收拢还是将菜单展开,都会导致这个组件整体瞬移到初始位置,我在延长了动画的播放时间后发现,切换动画结束后会立刻进行一次瞬移,在缩放动画过程中完成了其中2个(一共有4个)图标后会发生一次瞬移,但绘制完剩下的2个图标后不会发生瞬移,您是否还能够针对这个问题提供帮助?谢谢。