我正在android studio中创建视频播放器。我想在5秒后隐藏按钮,布局和媒体控制器,并且我将手势用于不同的属性,但是问题是,当我在特定时间内应用2到3个手势时,按钮和媒体控制器在5秒钟后开始闪烁。我使用此代码在屏幕上进行样式设置

centerlayout.setOnTouchListener(new LinearLayout.OnTouchListener(){
            @Override
            public boolean onTouch(View v, MotionEvent m) {
                if (gestureDetectorc.onTouchEvent(m)) {
                    if(m.getAction()==MotionEvent.ACTION_UP){
                        handler.postDelayed(new Runnable() {
                            @Override
                            public void run() {

                                hide();
                            }
                        },5000);


                    }
                }

                return true;
            }
        });

最佳答案

在全局中声明可运行

Runnable mRunnable = new Runnable() {
                            @Override
                            public void run() {
                                hide();
                            }
                        };


致电removeCallbacks之前先致电postDelay

centerlayout.setOnTouchListener(new LinearLayout.OnTouchListener(){
            @Override
            public boolean onTouch(View v, MotionEvent m) {
                if (gestureDetectorc.onTouchEvent(m)) {
                    if(m.getAction()==MotionEvent.ACTION_UP){
                        handler.removeCallbacks(mRunnable);//add this
                        handler.postDelayed(mRunnable, 5000);
                    }
                }

                return true;
            }
        });

07-24 09:36