Android App隐藏Navigation Bar

1. 简介

    在Android4.4.2(KITKAT<Build.VERSION_CODES.KITKAT>)之前,只能设置:           

      1)View.SYSTEM_UI_FLAG_HIDE_NAVIGATION

           其缺点是当Touch Screen时,Navigation bar将显示出来。

    从Android4.4.2起,可以设置:

     1)View.SYSTEM_UI_FLAG_HIDE_NAVIGATION

     2)View.SYSTEM_UI_FLAG_IMMERSIVE

         同时设置以上两个参数,即使Touch Screen时,Navigation bar也不会显示出来。

2. 实现代码

private static Handler sHandler;

protected void onCreate(Bundle savedInstanceState){  
    super.onCreate(savedInstanceState);   

    sHandler = new Handler();
    
    sHandler.post(mHideRunnable); // hide the navigation bar

    final View decorView = getWindow().getDecorView();
    decorView.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener()
        {
            @Override
            public void onSystemUiVisibilityChange(int visibility)
            {
                sHandler.post(mHideRunnable); // hide the navigation bar
            }
        });        
}

Runnable mHideRunnable = new Runnable() {
    @Override
    public void run() {
        int flags;  
        int curApiVersion = android.os.Build.VERSION.SDK_INT;
        // This work only for android 4.4+
        if(curApiVersion >= Build.VERSION_CODES.KITKAT){
            // This work only for android 4.4+
            // hide navigation bar permanently in android activity
            // touch the screen, the navigation bar will not show
            flags = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                  | View.SYSTEM_UI_FLAG_IMMERSIVE
                  | View.SYSTEM_UI_FLAG_FULLSCREEN;
                
        }else{
            // touch the screen, the navigation bar will show
            flags = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
        }
        
        // must be executed in main thread :)
        getWindow().getDecorView().setSystemUiVisibility(flags);
    }
};  



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值