具有拖放功能的 Android 浮动操作按钮
Posted
技术标签:
【中文标题】具有拖放功能的 Android 浮动操作按钮【英文标题】:Android floating action button with drag-drop functionality 【发布时间】:2016-05-28 07:05:33 【问题描述】:如何在类似 Flipkart 应用的 android 中使用浮动操作按钮实现拖放
【问题讨论】:
欢迎来到 Stack Overflow!这个问题非常广泛——如果您提供更多细节,它将帮助我们回答这个问题。另外,您有可以发布的特定代码吗? 您还可以查看“相关”问题(在此页面右侧的侧边栏中)。 这不是一个广泛的问题。我提到就像flipkart应用程序不一样,使用fab的拖放功能 我不知道是谁否决了这个问题。不是我。 我赞成取消 -1 的问题。 【参考方案1】:通过setOnTouchListener和监听事件可以实现fab在屏幕周围的拖放功能,请尝试下面的代码
fab.setOnTouchListener(new View.OnTouchListener()
float startX;
float startRawX;
float distanceX;
int lastAction;
@Override
public boolean onTouch(View view, MotionEvent event)
switch (event.getActionMasked())
case MotionEvent.ACTION_DOWN:
startX = view.getX() - event.getRawX();
startRawX = event.getRawX();
lastAction = MotionEvent.ACTION_DOWN;
break;
case MotionEvent.ACTION_MOVE:
view.setX(event.getRawX() + startX);
view.setY(event.getRawY() + startX);
lastAction = MotionEvent.ACTION_MOVE;
break;
case MotionEvent.ACTION_UP:
distanceX = event.getRawX()-startRawX;
if (Math.abs(distanceX)< 10)
Toast.makeText(getActivity(), "FAB CLICKED", Toast.LENGTH_SHORT).show();
break;
case MotionEvent.ACTION_BUTTON_PRESS:
default:
return false;
return true;
);
【讨论】:
【参考方案2】:可拖动的浮动操作按钮:
fabCreate = (FloatingActionButton)view.findViewById(R.id.btnCreate);
fabCreate.setOnTouchListener(new View.OnTouchListener()
@Override
public boolean onTouch(View view, MotionEvent event)
switch (event.getActionMasked())
case MotionEvent.ACTION_DOWN:
dX = view.getX() - event.getRawX();
dY = view.getY() - event.getRawY();
lastAction = MotionEvent.ACTION_DOWN;
break;
case MotionEvent.ACTION_MOVE:
view.setY(event.getRawY() + dY);
view.setX(event.getRawX() + dX);
lastAction = MotionEvent.ACTION_MOVE;
break;
case MotionEvent.ACTION_UP:
if (lastAction == MotionEvent.ACTION_DOWN)
//Toast.makeText(getActivity(), "Clicked!", Toast.LENGTH_SHORT).show();
break;
case MotionEvent.ACTION_BUTTON_PRESS:
intent = new Intent(getActivity(), PostActivity1.class);
startActivity(intent);
default:
return false;
return true;
);
【讨论】:
onLongClickListener 和 onDragListener 怎么样?以上是关于具有拖放功能的 Android 浮动操作按钮的主要内容,如果未能解决你的问题,请参考以下文章
如何为可移动的浮动按钮设置 onTouch 和 onClick 功能