2016-02-16 11 views
6

Jak zaimplementować przeciągnij i upuść z pływającym przycisku akcji w Androidzie jak stosowanie flipkartAndroid pływających przycisk akcji z funkcją drag-drop

+0

Witamy w Stack Overflow! To pytanie jest dość szerokie - jeśli podasz więcej szczegółów, pomoże nam to odpowiedzieć na pytanie. Masz również specjalny kod, który możesz publikować? – jkdev

+0

Możesz również spojrzeć na "powiązane" pytania (na pasku bocznym po prawej stronie tej strony). – jkdev

+0

To nie jest szerokie pytanie. Wspomniałem, że podobnie jak aplikacja typu flipkart nie jest taka sama, funkcja przeciągania i upuszczania z fab – user2126566

Odpowiedz

-1

Draggable Pływający Action 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

co powiesz naLongClickListener i onDragListener? – nurettin

0

przeciągnij i upuść dla fab wokół ekran można uzyskać za pomocą setOnTouchListener i zdarzeń odsłuchowych, spróbuj poniżej kodu:

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; 
      } 
     }); 
Powiązane problemy