Android 系统栏,状态栏的隐藏

来源:互联网 发布:unity3d 如何三维建模 编辑:程序博客网 时间:2024/04/29 17:44

         有时候我们需要我们的界面有更多的展示空间,这个时候我们通常会考虑隐藏我们的状态栏和标题栏,同时我们希望依然可以

通过向下滑的方式,展示并使用系统栏。

下面提供一个实现方式:

  1,定义一个工具类,在onCreate方法中调用hideSystemUI方法:

 

package com.pplive.movie3d.utils;import android.app.Activity;import android.view.View;public class ShowSystemUIUtil {        public static void hideSystemUI(Activity context) {        View decorView = context.getWindow().getDecorView();        int uiOptions = 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;        decorView.setSystemUiVisibility(uiOptions);    }}
  2,在onResume方法中设置监听,当状态栏显现时,重新隐藏:

   /**     * 设置状态栏的显示监听器,当状态栏显示时,将其隐藏!     */    private void setOnSystemUiListener(){        final View decor=getWindow().getDecorView();        decor.setOnSystemUiVisibilityChangeListener (new View.OnSystemUiVisibilityChangeListener() {            public void onSystemUiVisibilityChange(int visibility) {                                new Handler().postDelayed(new Runnable() {                    public void run(){                        //decor.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);                        try {                            ShowSystemUIUtil.hideSystemUI(VideoPlayerFragmentActivity.this);                        } catch (Exception e) {                            // TODO: handle exception                        }                    }                }, 1500);            }        });    }

以上方法使用Android4.4以上版本,因为View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY是Android4.4以后推出的。


——————————————————

对于较低版本的方法

最简单当然是在Androidminifest.xml文件中声明:

<application...android:theme="@android:style/Theme.Holo.NoActionBar.Fullscreen">...</application>


代码方法方式

    //设置无标题      requestWindowFeature(Window.FEATURE_NO_TITLE);       /设置全屏      getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,           WindowManager.LayoutParams.FLAG_FULLSCREEN);  











      

       

0 0
原创粉丝点击