«

Android之4.4版本以上沉浸式状态栏实现

时间:2024-3-2 16:54     作者:韩俊     分类: Android


Android在4.4(KITKAT)版本加入了沉浸式,这个概念开始是在ios上使用的,现在ios的应用基本上都使用了沉浸式,而android只能在4.4及以上的版本进行使用。

先看看没有沉浸式的效果:


可以看到顶部的状态栏和底部的导航栏的颜色与界面不搭配看起来比较突兀。

只需要在activity的oncreate方法中加入几行代码就能使状态栏和导航栏与界面融为一体。

@TargetApi(Build.VERSION_CODES.KITKAT)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            Window window = getWindow();
            //透明状态栏
            window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            //透明导航栏
            window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
        }  
        setContentView(R.layout.activity_main);

    }
这样子会有一个bug,会使得界面的绘制出了应用的边界。就像这样

效果就比较差


所以还需要在相应的activity的布局中加入

android:fitsSystemWindows="true"

这样就能完美的实现效果




标签: android

热门推荐