Скрыть панель навигации в Android Tablet [дубликат]

45
задан Gopal Gopi 12 February 2014 в 11:58
поделиться

7 ответов

Согласно сайту разработчика Android

Я думаю, что вы не можете (насколько мне известно) скрывать навигационную панель постоянно.

Однако вы можете сделать один трюк. Это трюк.

Когда появляется navigation bar, когда пользователь прикасается к экрану. Сразу же спрячьте это снова.

Проверьте это.

void setNavVisibility(boolean visible) {
int newVis = SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
        | SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
        | SYSTEM_UI_FLAG_LAYOUT_STABLE;
if (!visible) {
    newVis |= SYSTEM_UI_FLAG_LOW_PROFILE | SYSTEM_UI_FLAG_FULLSCREEN
            | SYSTEM_UI_FLAG_HIDE_NAVIGATION;
}

// If we are now visible, schedule a timer for us to go invisible.
if (visible) {
    Handler h = getHandler();
    if (h != null) {
        h.removeCallbacks(mNavHider);
        if (!mMenusOpen && !mPaused) {
            // If the menus are open or play is paused, we will not auto-hide.
            h.postDelayed(mNavHider, 1500);
        }
    }
}

// Set the new desired visibility.
setSystemUiVisibility(newVis);
mTitleView.setVisibility(visible ? VISIBLE : INVISIBLE);
mPlayButton.setVisibility(visible ? VISIBLE : INVISIBLE);
mSeekView.setVisibility(visible ? VISIBLE : INVISIBLE);
}

См. Это для получения дополнительной информации об этом ..

Скрыть системную панель в планшетах

71
ответ дан Community 5 September 2018 в 08:21
поделиться
3
ответ дан Namrata 5 September 2018 в 08:21
поделиться

Это мое решение:

Сначала определите логическое значение, указывающее, видима ли панель навигации или нет.

boolean navigationBarVisibility = true //because it's visible when activity is created

Второй метод создания, который скрывает навигационную панель.

private void setNavigationBarVisibility(boolean visibility){
    if(visibility){
        View decorView = getWindow().getDecorView();
        int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_FULLSCREEN;
        decorView.setSystemUiVisibility(uiOptions);
        navigationBarVisibility = false;
    }

    else
        navigationBarVisibility = true;
}

По умолчанию, если вы нажмете на активность после панели навигации скрыть, появится панель навигации. Итак, мы получили его состояние, если оно будет видно, мы скроем его.

Теперь установите OnClickListener в ваше представление. Я использую для себя такое представление:

    playerSurface.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            setNavigationBarVisibility(navigationBarVisibility);
        }
    });

Кроме того, мы должны вызвать этот метод при запуске активности. Потому что мы хотим скрыть это в начале.

        setNavigationBarVisibility(navigationBarVisibility);
0
ответ дан PeerNet 5 September 2018 в 08:21
поделиться
1
ответ дан qingfei song 5 September 2018 в 08:21
поделиться

Попробуйте это.

View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
          | View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);

сообщите мне, если это поможет ...:)

0
ответ дан Rashad 5 September 2018 в 08:21
поделиться

Сделайте это.

public void FullScreencall() {
    if(Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) { // lower api
        View v = this.getWindow().getDecorView();
        v.setSystemUiVisibility(View.GONE);
    } else if(Build.VERSION.SDK_INT >= 19) {
        //for new api versions.
        View decorView = getWindow().getDecorView();
        int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
        decorView.setSystemUiVisibility(uiOptions);
    }
}

Это работает на 100%, и вы можете сделать то же самое для более низких версий API, даже если это поздний ответ. Я надеюсь, что это поможет кому-то другому.

Если вы хотите, чтобы это было постоянным, просто вызовите FullscreenCall() внутри вашего метода onResume().

31
ответ дан Shams Shafiq 5 September 2018 в 08:21
поделиться

Проблема с безопасностью: https://stackoverflow.com/a/12605313/1303691

, поэтому его невозможно полностью скрыть навигацию на планшете с помощью одного сингла вызов в начале создания представления. Он будет скрыт, но он появится при касании экрана. Таким образом, только второе касание к экрану может вызвать onClickEvent на вашем макете. Поэтому вам нужно перехватить этот вызов, но я еще не справился с этим, я обновлю свой ответ, когда узнаю его. Или вы уже ответили?

1
ответ дан swisscoder 5 September 2018 в 08:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: