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沉浸式状态栏 轻量 简便

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值