Activityがフルスクリーンモードで動作する場合、ステータスバーの表示と非表示

2096 ワード

1.activityの
setContentView(R.layout.video_main);

2.前に付ける
getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);

getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);

3.再利用
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);// 
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);// 

しかし、私は上の2つの言葉で、私のvideoviewで使っているmediacoontrollerの進捗バーを遮断したことに気づいた.
だから、その二つの言葉を変えてもいいです.
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);

私はviewpagerを使っています.真ん中のページにvideoviewが入っているので、videoviewには正常に表示されていますが、左右の2ページが正常に表示されていません.
プラスできる
//ステータスバー表示、Activity不完全画面表示(ステータスがある正常に戻る)
   
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);

何ページ目にスライドするかを監視することができます
@Override
public void onPageSelected(int arg0) {
    if (arg0 == 0) {
      getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
      getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
   }else if (arg0 == 2){
      getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
      getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
   }else{
       getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
      
      new Handler().postDelayed(new Runnable() {
           @Override
           public void run() {
           getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
           }
         },1000);
       }  
   }

補足:透明タスクバー
定義された2つのFlagをViewに追加します.//完全透明タスクバーpublic static final int SYSTEM_UI_FLAG_TRANSPARENT_STATUS_BAR = 0x00000010;//半透明タスクバーpublic static final int SYSTEM_UI_FLAG_TRANSLUCENT_STATUS_BAR = 0x00000020;一部のアプリケーションでは、設定が必要な場合、必要なUIインタフェースの設定:getWindow()がある.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_TRANSPARENT_STATUS_BAR);アプリケーションの終了は処理を必要とせず、デフォルトに戻ります.