View.SYSTEM_UI_FLAG_FULLSCREEN не работает должным образом - PullRequest
0 голосов
/ 18 апреля 2020

Я совсем новичок в Android разработке. В своем приложении я использую класс, который является частью моей деятельности. Это позволяет мне определить, что все мое приложение будет в полноэкранном режиме.

Вот код этого класса:

package com.retroverse.bataille_corse;

import android.os.Build;
import android.os.Bundle;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;

public class FullScreenActivity extends AppCompatActivity {
    @Override
    protected void onResume() {
        super.onResume();
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            this.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                    | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
                    | View.SYSTEM_UI_FLAG_FULLSCREEN);
        }
    }
}

Полноэкранный режим работает отлично, за исключением очень конкретный случай c. Когда я нахожусь в моем приложении, я нажимаю кнопку «домой» на панели навигации, затем, когда я хочу возобновить приложение (только так), нажав кнопку «меню приложения» на панели навигации (когда вы видите приложения, которые все еще открыты) и возобновляют работу приложения, панель уведомлений появляется, когда она не должна (и только она, с панелью навигации никогда не возникает проблем) ... Но она исчезает, когда я изменяю активность.

Вот видео, чтобы лучше понять: https://drive.google.com/open?id=1FPoADemhLcPfxnohQdfYOpb6wkxQTx5q

Я также попытался добавить

| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LOW_PROFILE

Но это ничего не изменило (кроме того, я не я действительно не знаю, для чего нужны эти 2 вида) ...

Мне очень нужна помощь, спасибо !!

1 Ответ

0 голосов
/ 18 апреля 2020

Вы можете удалить строку состояния, перейдя к каждому виду деятельности и установить это в своем методе OnCreate:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.your_layout);
}
...