2015-03-11 1 views
0
viewPager.setOnTouchListener(
      new View.OnTouchListener() { 


       @Override 
       public boolean onTouch(View view, MotionEvent motionEvent) { 

        if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) { 
         moved = false; 
         System.out.println("clicked ACTION_DOWN"); 
        } 
        if (motionEvent.getAction() == MotionEvent.ACTION_MOVE) { 
         System.out.println("clicked ACTION_MOVE"); 
         moved = true; 
        } 
        if (motionEvent.getAction() == MotionEvent.ACTION_UP) { 
         if (!moved) { 
          System.out.println("clicked ACTION_UP"); 
          view.performClick(); 
         } 
        } 
        return false; 
       } 

      } 

    ); 

И добавил OnClick слушателя, как показано нижеViewPager вызвало OnClick событие, но не MotionEvent.ACTION_UP в HUAWEI телефонов

viewPager.setOnClickListener(
       new View.OnClickListener() { 

        @Override 
        public void onClick(View view) { 
              } 
       } 
     ); 

Он отлично работает в samsug мобильных телефонов, но MotionEvent.ACTION_UP не срабатывает в телефонах HUAWEI. Может ли кто-нибудь помочь?

+0

Вы имеете в виду ход действий и вниз мог быть обнаружены в телефонах HUAWEI? –

+0

Да только ACTION_UP не обнаружен. – Sujay

ответ

0

Я решил эту проблему с помощью GestureDetector

GestureDetector tapGestureDetector = new GestureDetector(getActivity(), new TapGestureListener()); 

Используйте ниже код, чтобы справиться с этим:

class TapGestureListener extends GestureDetector.SimpleOnGestureListener{ 

     @Override 
     public boolean onSingleTapConfirmed(MotionEvent e) { 
      // Your Code here 
      System.out.println("hello"); 
          if (e.getAction() == MotionEvent.ACTION_DOWN) { 
           moved = false; 
           viewPager.performClick(); 
           System.out.println("clicked ACTION_DOWN"); 
          } 
          if (e.getAction() == MotionEvent.ACTION_MOVE) { 
           System.out.println("clicked ACTION_MOVE"); 
           moved = true; 
          } 
          if (e.getAction() == MotionEvent.ACTION_UP) { 
           if (!moved) { 
            System.out.println("clicked ACTION_UP"); 

           } 
          } 
          return false; 
         } 

     } 
    } 

setOnclickListener будет работать должным образом здесь

viewPager.setOnClickListener(
       new View.OnClickListener() { 

        @Override 
        public void onClick(View view) { 
              } 
       } 
     ); 

 Смежные вопросы

  • Нет связанных вопросов^_^