Android设置沉浸式,并更换状态栏文字颜色

首先在基类BaseActivity或BaseFragment中写下以下代码,记得要在setContent之前调用

public  abstract  class BaseActvity extends AppCompatActivity implements View.OnClickListener{
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        doBeforeSetcontentView();
        setContentView(getLayoutRes());
        AppManager.addActivity(this);
        initView();
    }

重点是doBeforeSetcontentView方法,在里面会有一些操作(无标题或设置竖屏或设置状态栏背景色之类的)


    /**
     * 设置沉浸式菜单,无标题,屏幕方向等
     */
    protected void doBeforeSetcontentView() {
        // 无标题
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        //竖屏
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

        SetStatusBarColor();
        SetTranslanteBar();
    }
    /**
     * 着色状态栏(4.4以上系统有效)
     */
    protected void SetStatusBarColor() {
        StatusBarCompat.setStatusBarColor(this, ContextCompat.getColor(this, R.color.colorPrimary));
    }

    /**
     * 着色状态栏(4.4以上系统有效)
     */
    protected void SetStatusBarColor(int color) {
        StatusBarCompat.setStatusBarColor(this, color);
    }

    /**
     * 沉浸状态栏(4.4以上系统有效)
     */
    protected void SetTranslanteBar() {
        StatusBarCompat.translucentStatusBar(this);
    }

目前的操作大概只是介绍如何设置沉浸式和改一下状态栏背景色。

如果要更改状态栏文字颜色,借助第三方写好的工具比较方便就好了,这里推荐这个工具

StatusBarUtil,依赖是   

compile 'com.github.crossoverone:StatusBarUtil:1.3.3'//会不定时更新,请及时更新

用法是:其实我用的时候第二个参数设置沉浸式没有效果,,不过第三个设置文字颜色倒是可以的。结合上面使用即可了

// 第二个参数是是否沉浸,第三个参数是状态栏字体是否为黑色。
        StatusUtil.setSystemStatus(this, false, true);

参考文章是这个android沉浸式状态栏 轻量 简便

 

 

你可能感兴趣的:(Android学习之路)