美文网首页
记录状态栏适配

记录状态栏适配

作者: Avalon1 | 来源:发表于2016-10-26 10:30 被阅读20次

    因为是主界面包含2个fragment,而这两个fragment的头部颜色又不一样。(我手机是6.0的系统)所以第一个 colorAccent切换到第二个red的fragment的时候默认的状态栏依旧为colorAccent,看起来太别扭了。

    当然似乎实现方法有多种。就记录一下我采取的方案吧。其实这也是我看到一位简书上面的作者的文章做的。可惜今天找不到那个文章地址了。怕以后在遇到自己记录一下顺便加深印象、

    首先在activity处理

    恩if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {//5.0及以上

    View decorView = getWindow().getDecorView();
    int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
    decorView.setSystemUiVisibility(option); getWindow().setStatusBarColor(getResources().getColor(R.color.colorAccent));
    }
    else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {//4.4到5.0
    WindowManager.LayoutParams localLayoutParams = getWindow().getAttributes();
    localLayoutParams.flags = (WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | localLayoutParams.flags);
    }

    然后在创建value-19和value-21创建所用的主题style和value中名字一样

    自带的主题


    Paste_Image.png

    19下面的主题

    Paste_Image.png

    21下面的主题

    Paste_Image.png

    然后是在需要的fragment的布局文件中给跟布局设置背景色(如果背景色影响到内部内容,建议在外边套一层RelativeLatout之类的。)

    Paste_Image.png

    这个paddingtop是跟版本有关的。19以下为25,之后为0,所以需要在value-19和value下分别创建dimens文件处理。

    相关文章

      网友评论

          本文标题: 记录状态栏适配

          本文链接:https://www.haomeiwen.com/subject/mdyduttx.html