The drag and drop function for fab around the screen can be achieved using setOnTouchListener and listen events, please use below code
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; } });
source share