Android ViewPager在华为手机中触发onClick事件,但未触发MotionEvent.ACTION\u

Android ViewPager在华为手机中触发onClick事件,但未触发MotionEvent.ACTION\u,android,android-viewpager,handler,Android,Android Viewpager,Handler,并添加了onclick侦听器,如下所示 viewPager.setOnTouchListener( new View.OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent motionEvent) { if (motionEvent.getAction() =

并添加了onclick侦听器,如下所示

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

            }

    );

它在samsug手机上工作正常,但在华为手机上不会触发MotionEvent.ACTION\u UP。有人能帮忙吗?

我用手势检测器解决了这个问题

viewPager.setOnClickListener(
                new View.OnClickListener() {

                    @Override
                    public void onClick(View view) {
                                            }
                }
        );
使用以下代码来处理此问题:

GestureDetector tapGestureDetector = new GestureDetector(getActivity(), new TapGestureListener());
setOnclickListener将在此处正常工作

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

        }
    }

你的意思是在华为手机中可以检测到动作移动和下降?是的,只有动作向上没有检测到。
viewPager.setOnClickListener(
                new View.OnClickListener() {

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