msdx/status-bar-compat

下面的导航栏能不能像微信那样动态改变

jingjc opened this issue · 1 comments

1.一个Activity中多Fragment 每个fragment状态栏颜色不一样怎么更改呢? 2.我所有的Activity都继承BaseActivity 但Activity没有去重写BaseActivity的onCreate方法其他Activity中状态栏也一样改变了

msdx commented

对于第一个问题,在切换 fragment 显示的时候调用 StatusBarCompat 去设置状态栏颜色就可以了。
第二个问题,不是很理解。
不过在 Activity 中我建议做如下封装:
重写 BaseActivity 中的 setContentView 方法:

    @Override
    public void setContentView(int layoutResID) {
        super.setContentView(layoutResID);
        StatusBarCompat.setStatusBarColor(this, getStatusBarColor());
    }

    @ColorInt
    protected int getStatusBarColor() {
        return Color.WHITE;
    }

即在调用了 super.setContentView 之后来设置颜色,颜色通过方法获取,默认实现 Activity 常出现的那种状态栏颜色。其他 Activity 如果颜色不同,重写 getStatusBarColor() 方法,返回对应的颜色即可。