Как убрать черную полосу, появляющуюся внизу?

1

Я новичок в разработке Android. Я хочу, чтобы мое приложение поддерживало размер экрана моего устройства, т.е. 1080 x 2160 pixels. В настоящее время есть черная нижняя панель, которая отображается там, где были бы кнопки навигации.

Изображение 174551

Обратите внимание, что я не хочу полноэкранный режим. Я отключил навигацию по кнопкам на моем устройстве. Только для этого приложения отображается нижний черный прямоугольник. Я просто хочу, чтобы мое приложение поддерживало систему навигации по жестам моего устройства вместо кнопок. Как сделать так, чтобы нижняя панель исчезла с помощью Java (Android Studio), чтобы мое приложение использовало это пространство?

Теги:
android-layout
navigationbar

3 ответа

0

Попробуйте добавить этот код

@Override
protected void onCreate(Bundle savedInstanceState) {
    ...
    hideSystemUI(this, 1000);
}

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    if (hasFocus) {
        // Hide bar after 1 second
        hideSystemUI(this, 1000);
    }
}

public static void hideSystemUI(@NonNull final Activity activity, final int delayMs) {
    View decorView = activity.getWindow().getDecorView();
    int uiState = View.SYSTEM_UI_FLAG_IMMERSIVE
            | 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;
    final Handler handler = new Handler();
    decorView.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {
        @Override
        public void onSystemUiVisibilityChange(int visibility) {
            if (visibility == View.VISIBLE) {
                Runnable runnable = new Runnable() {
                    @Override
                    public void run() {
                        hideSystemUI(activity, 1000);
                    }
                };
                handler.postDelayed(runnable, delayMs);
            }
        }
    });
    decorView.setSystemUiVisibility(uiState);
}

ПРЕДУПРЕЖДЕНИЕ

Если у вас есть два действия, добавьте это перед изменением

View decorView = getWindow().getDecorView();
decorView.setOnSystemUiVisibilityChangeListener(null);
0

Вы можете попробовать это

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    if (hasFocus) {
        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);
    }
}
0

Привет, пожалуйста, попробуйте ниже код

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню