2016-02-16 18 views
6

Come implementare Drag and drop con pulsante di azione galleggianti in Android come l'applicazione FlipkartAndroid tasto galleggiante azione con funzionalità di drag-drop

+0

Benvenuto in Stack Overflow! Questa domanda è abbastanza ampia: se fornisci più specifiche, ci aiuterebbe a rispondere alla domanda. Inoltre, hai un codice specifico che puoi pubblicare? – jkdev

+0

E puoi anche guardare le domande "Correlate" (nella barra laterale sul lato destro di questa pagina). – jkdev

+0

Questa non è una domanda ampia. Ho menzionato proprio come l'applicazione flipkart non è la stessa, trascina la funzionalità con fab – user2126566

risposta

-1

Draggable Floating Azione Buttton:

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; 
     } 
    }); 
+0

come su onLongClickListener e onDragListener? – nurettin

0

Drag and drop per i fab intorno lo schermo può essere raggiunto usando setOnTouchListener ed eventi di ascolto, prova sotto il codice

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; 
      } 
     });