Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在android studio中隐藏特定时间后的内容_Java_Android_Android Studio - Fatal编程技术网

Java 如何在android studio中隐藏特定时间后的内容

Java 如何在android studio中隐藏特定时间后的内容,java,android,android-studio,Java,Android,Android Studio,我正在android studio中创建一个视频播放器。我想在5秒钟后隐藏按钮、布局和媒体控制器,我正在为不同的属性使用手势,但问题是,当我在特定时间内应用2到3个手势时,5秒钟后按钮和媒体控制器开始闪烁。我使用此代码在屏幕上设置样式 centerlayout.setOnTouchListener(new LinearLayout.OnTouchListener(){ @Override public boolean onTouch(View v,

我正在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

Runnable mRunnable = new Runnable() {
                            @Override
                            public void run() {
                                hide();
                            }
                        };
在调用
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;
            }
        });

您能否在我使用的mediacontroller的隐藏函数中提供
hide
method的代码片段。hide(),backbtn。hide(),forwardbtn。隐藏()和toplayout。hide()这里的代码是正确的。你的意思是
mediacontroller.hide()
mediacontroller.setVisibility(View.GONE)
?是的,我使用它,但问题是延迟后处理程序,因为当我使用2到3次处理程序时,它们每5秒隐藏一次,比如我第一次使用手势,然后,我在4秒钟内再次使用手势,然后在1秒钟后它将隐藏,因此当我多次使用手势时它开始闪烁良好,然后保存runnable并在删除回调后执行post延迟。谢谢你解决了我的问题,也给了我你的时间。