Je ne sais pas quel niveau d'API vous essayez de cibler, mais si vous pouvez utiliser des éléments spécifiques à l'API 23, vous pouvez ajouter ce qui suit à votre AppTheme styles.xml:
<item name="android:statusBarColor">@color/colorPrimaryDark</item>
<item name="android:windowLightStatusBar">true</item>
lorsque la valeur android:windowLightStatusBar
est définie sur true, la couleur du texte de la barre d'état sera visible lorsque la couleur de la barre d'état est blanche, et vice-versa lorsqu'elle android:windowLightStatusBar
est définie sur false, la couleur du texte de la barre d'état sera conçue pour être vue lorsque la couleur de la barre d'état est sombre.
Exemple:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:statusBarColor">@color/colorPrimaryDark</item>
<item name="android:windowLightStatusBar">true</item>
</style>
vous pouvez le faire par programme comme cette réponse
ajoute juste ceci
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
la source
c'est très simple:
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);// set status text dark getWindow().setStatusBarColor(ContextCompat.getColor(BookReaderActivity.this,R.color.white));// set status background white
et vice versa:
getWindow().setStatusBarColor(ContextCompat.getColor(BookReaderActivity.this, R.color.black)); View decorView = getWindow().getDecorView(); //set status background black decorView.setSystemUiVisibility(decorView.getSystemUiVisibility() & ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); //set status text light
la source
Comme précédemment, le SYSTEM_UI_FLAG_LIGHT_STATUS_BAR fait le travail dans mon cas, n'oubliez pas de définir une valeur supérieure à l'API 22.
ajoutez ceci à oncreate après le setContentView:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); }
la source
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);// set status text dark getWindow().setStatusBarColor(ContextCompat.getColor(MainActivity.this,R.color.colorPrimaryDark));// set status background white
Ça marche pour moi
la source
Essayez ceci une fois.
Dans votre
onCreate()
méthode d' activité , collez le code suivant.try { if (android.os.Build.VERSION.SDK_INT >= 21) { Window window = getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(ContextCompat.getColor(this, R.color.color_red)); } } catch (Exception e) { e.printStackTrace(); }
Remarque: color_red - est la couleur de la barre d'état.
la source
Dans votre
onCreate()
méthode d' activité , collez le code suivant après lesetContentView(R.layout.activity_generic_main);
Voici l'exemple de code ci-dessous.
public class GenericMain extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_generic_main); getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); } }
la source
Essayez ceci sinon la page d'accueil
la source