如何像FB Messenger一样在Android中“自动更改”状态栏文本颜色?

时间:2019-05-11 11:56:04

标签: java android statusbar

我看到状态栏文本颜色为白色,但是当我打开FB Messenger时,颜色变为黑色。我该怎么办?

在打开Messenger之前

Before Image

打开Messenger时

After Image

这是我的代码

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {

            getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
            getWindow().setStatusBarColor(ContextCompat.getColor(this, R.color.white));

        }


        initViews();



    }


2 个答案:

答案 0 :(得分:0)

您好,您可以在活动中动态进行

您可以在 onCreate

中调用此代码块
   if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {

        window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);

        window.setStatusBarColor(ContextCompat.getColor(this, resourceId));

 }

resourceId是您的颜色ID,例如R.color.red

答案 1 :(得分:0)

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);

    if(getWindow()!=null){
        getWindow().setStatusBarColor(ContextCompat.getColor(this, R.color.color_amber));
    }
}

//最终结果
enter image description here

只需创建一个示例项目并使用此代码进行验证