Скрытие строки состояния и строки заголовка в течение определенного времени - PullRequest
0 голосов
/ 12 июня 2018

Я хочу скрыть статус и строку заголовка в одном и том же макете в течение определенного времени.Как на 2 или 3 секунды.Для этого я попытался Timer и, как я знаю, запрос функции (requestFeature()) должен быть вызван до SetContentView и Super.OnCreate,Итак, я написал этот код:

@Override
protected void onCreate(Bundle savedInstanceState) {

    Timer timer = new Timer();
    timer.scheduleAtFixedRate(new TimerTask() {
        @Override
        public void run() {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    // TODO Auto-generated method stub
                    // Hiding Title bar of this activity screen //
                    getWindow().requestFeature(Window.FEATURE_NO_TITLE);

                    // Making this activity, full screen //
                    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

                }
            });
        }
    }, 1000, 5000);


    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_splash);

Но он приходит со следующей ошибкой:

android.util.AndroidRuntimeException: requestFeature() must be called before adding content

Я думаю, что Таймер ответственен за ошибку.Потому что, когда я вызываю requestFeature () без Timer, приложение запускается без каких-либо ошибок или сбоев.

Есть ли способ скрыть статус и заголовокбар в течение определенного времени в том же макете?(Без намерения)

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Используйте приведенный ниже код

Полный экран

 // Full Screen call using DecorView
 private void setFullScreen() {
           getWindow().addFlags(LayoutParams.FLAG_FULLSCREEN);
      }

Удалить из полного экрана

private void removeFromFullScreen() {
    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
  }

Теперь в вашем OnCreate()

@Override
protected void onCreate(Bundle savedInstanceState) {

   final android.os.CountDownTimer Count = new android.os.CountDownTimer(5000, 1000) {
 @Override
  public void onTick(long millisUntilFinished) {
   if (millisUntilFinished/1000 == 2) {
      setFFullScreen();
    }
   Log.e("TAG",millisUntilFinished/1000+"");
  }
  @Override
  public void onFinish() {
    removeFromFullScreen();
  }
};
Count.start();
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
0 голосов
/ 12 июня 2018
 Timer timer = new Timer();
        timer.scheduleAtFixedRate(new TimerTask() {
            @Override
            public void run() {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        // TODO Auto-generated method stub
                        // Hiding Title bar of this activity screen //
                         getSupportActionBar().hide();
                        // Making this activity, full screen //
                        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

                    }
                });
            }
        }, 1000, 5000);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash);

Замените getWindow().requestFeature(Window.FEATURE_NO_TITLE); на getSupportActionBar().hide(); вместо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...