当 Activity 以全屏模式运行时,状态栏的出现与隐藏

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上显示正常了,但是左右两页显示不正常了

可以加上

    //显示状态栏,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);
       }  
   }

补充:透明任务栏

在View中添加定义了两个Flag。
     // 完全透明任务栏
     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);
应用退出无需做任何处理,系统会恢复默认。

转载于:https://my.oschina.net/u/2531348/blog/613286

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值