2017-04-03 143 views
0

我改变状态栏的背景颜色与此代码:状态栏文字颜色不改变

public class MainActivity extends AppCompatActivity { 

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

     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
      Window window = getWindow(); 
      window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); 
      window.setStatusBarColor(getColorByResourceId(this, android.R.color.white)); 
     } 
    } 

    @ColorInt 
    public int getColorByResourceId(@NonNull Context context, @ColorRes int resourceId) { 
     return ResourcesCompat.getColor(context.getResources(), resourceId, null); 
    } 

} 

背景变好,但文字颜色不改变(这白色太):

status bar

我使用Theme.AppCompat.Light.NoActionBar。如何使状态栏文字颜色变黑?

回答

1

你不能设置一个特定的textColorstatusBar。但是,你可以把它看到你的statusBar后台API> = 23

当你的状态栏。是,你可以在你基础应用主题或您的自定义状态栏。主题添加以下属性:

<item name="android:windowLightStatusBar">true</item> 

它会使文本稍微浅灰色,这将使他们在您的白色背景可见。

+0

但我知道,状态栏文本的颜色应改变自动与背景颜色。在我的情况下,没有发生。它看起来像一些系统错误。 – BArtWell

+0

是的,它应该改变colorPrimaryDark。不幸的是,它不适合我。 – tahsinRupam