沉浸式状态栏框架-SystemBarTint

Posted 六月June June

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了沉浸式状态栏框架-SystemBarTint相关的知识,希望对你有一定的参考价值。

为什么要使用沉浸式状态栏呢?

--为了用户体验。

因为有的app界面的风格都是差不多的,比如支付宝,用的蓝色调风格,为了让状态栏看起来不那么突兀,我们可以使用沉浸式状态栏。

沉浸式状态栏在游戏app中用的比较多,也是为了用户体验。好了,废话不多说,直接来了解一下如何使用吧。


1.添加依赖

compile 'com.readystatesoftware.systembartint:systembartint:1.0.3'

2.在基类BaseActivity中写初始化沉浸式状态栏的方法

这样所有子类Activity都能设置自己的状态栏的颜色

public class BaseActivity extends AppCompatActivity 
    /**
     * 设置沉浸式状态栏的方法
     */
    protected void initStatusBar(int color) 
        //如果想支持4.4以上版本,需要将状态栏设置成透明的才能着色。
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) //KITKAT表示是4.4版本
            Window win = getWindow();
            WindowManager.LayoutParams winParams = win.getAttributes();
            //WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS含义为状态栏透明
            winParams.flags |= WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
            win.setAttributes(winParams);
        
        SystemBarTintManager tintManager = new SystemBarTintManager(this); //着色管理器
        tintManager.setStatusBarTintEnabled(true);//设置支持着色
        tintManager.setStatusBarTintColor(color);//指设置颜色
    

3.在子类Activity中重写父类initStatusBar()方法

public class MainActivity extends BaseActivity 
    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initStatusBar(Color.parseColor("#39AEFF"));//重写父类方法,修改状态栏颜色
    


运行效果:



以上是关于沉浸式状态栏框架-SystemBarTint的主要内容,如果未能解决你的问题,请参考以下文章

Android 实现沉浸式状态栏

android沉浸式

如何在布局/样式 XML 中设置状态栏色调颜色?

Android 沉浸式状态栏

如何实现Android沉浸式状态栏

ionic3 沉浸式状态栏