Android:平滑隐藏软键

时间:2016-07-12 10:41:31

标签: android youtube softkeys

当视频处于全屏模式时,我想隐藏并显示像youtube这样的软键(主页,后退,菜单)。 我正在使用下面的代码。

getWindow().getDecorView().setSystemUiVisibility(
                        View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                                | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                                | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                                | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                                | View.SYSTEM_UI_FLAG_FULLSCREEN
                                | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);

但它不像youtube,它会扰乱整个隐藏和显示的视图。

我知道,我错过了什么。但我不知道我错过了什么......

2 个答案:

答案 0 :(得分:0)

试试这个,

   void enableImmersiveMode() {

    ((FrameLayout) mToolbar.getParent()).setFitsSystemWindows(false);

    // True immersive mode is available only for android API 19 and above,
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { 
        mDecorView.setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
                        | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
                        | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);

    }

更新:禁用沉浸式模式应该是这样的,

private void disableImmersiveMode() {

    ((FrameLayout) mToolbar.getParent()).setFitsSystemWindows(true);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        mDecorView.setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
    }

这样,你应该只看到第一次调用enableImmersiveMode()。

答案 1 :(得分:0)

你想要的只是沉浸式模式。在您的活动中尝试以下代码。

supress_stdout