Android: la barre d'état est blanche

Pour une raison quelconque, la barre d'état est maintenant blanche. Ou plutôt, un blanc cassé, avec une autre nuance de blanc pour les icônes légèrement visibles sur le fond lumineux. Ce qui est faux, car mon appbarlayout utilise une nuance bleue comme couleur. Jusqu'à maintenant, cela a bien fonctionné, je ne sais pas ce que j'ai fait pour causer cela. J'ai essayé de définir manuellement le statutBarColor à colorPrimaryDark (# 0277bd), mais cela ne fonctionne pas.

Je ne sais pas pourquoi cela se produit en premier lieu. Je collage le layout.xml de mon activité, peut-être que quelqu'un peut me donner une idée de ce que je fais mal ici.

  • Vue circulaire personnalisée
  • Comment créer une liste déroulante?
  • Ce qui attend dans la médiation AdMob
  • Passer au prochain Fragment avec un clic de bouton
  • Android OpenGL ES et 2D
  • Comment puis-je obtenir la couleur primaire du thème de ma application?
  • Quelques notes:

    Les thèmes utilisés n'ont pas été modifiés à partir de leurs valeurs par défaut, à savoir utiliser les paramètres de couleur primaires. J'ai changé ceux de l'ombre droite du bleu que je voulais, mais quand j'ai changé, tout ce qui fonctionnait.

    Mon layout.xml

    <?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:statusBarColor="@color/colorPrimaryDark" tools:context=".activities.ContactsActivity"> <android.support.design.widget.AppBarLayout android:id="@+id/contactsActivityAppbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:fitsSystemWindows="true" android:statusBarColor="@color/colorPrimaryDark" android:theme="@style/AppTheme.AppBarOverlay"> <android.support.v7.widget.Toolbar android:id="@+id/contactsActivityToolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:popupTheme="@style/AppTheme.PopupOverlay"/> <!-- app:layout_scrollFlags="scroll|enterAlways" --> <android.support.design.widget.TabLayout android:id="@+id/contactsActivityTabs" android:layout_width="match_parent" android:layout_height="wrap_content" app:tabIndicatorColor="@android:color/white" android:scrollbarStyle="insideOverlay" android:paddingBottom="1dp" android:background="@color/colorPrimary"/> </android.support.design.widget.AppBarLayout> <android.support.v4.view.ViewPager android:id="@+id/contactsTabsViewPager" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"/> </android.support.design.widget.CoordinatorLayout> 

    Colors.xml

     <?xml version="1.0" encoding="utf-8"?> <resources> <color name="colorPrimary">#0288d1</color> <color name="colorPrimaryDark">#0277bd</color> <color name="colorAccent">#FF4081</color> </resources> 

    Styles.xml

     <resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> <style name="AppTheme.NoActionBar"> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> </style> <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" /> </resources> 

    Edit: Ok, a trouvé une solution intéressante, vraiment envie de le comprendre, pas seulement en s'appuyant dessus. En outre, ce n'est peut-être pas la meilleure réponse à long terme.

    Quoi qu'il en soit, pour le thème d'application de base (AppTheme) dans styles.xml, j'ai ajouté la ligne suivante:

     <item name="android:windowBackground">@color/colorPrimaryDark</item> 

    Cela a fonctionné, il a fait le fond de tout ce que je n'ai pas spécifiquement assigné une couleur qui couleur. Mais il a également fait de la barre d'état cette couleur, alors j'ai traversé et ajouté mes propres antécédents à d'autres choses pour les réparer.

    Je pense que ce n'est pas la solution idéale, mais j'aimerais simplement avoir plus de commentaires en général. En outre, même sans cette ligne avant, il était très bien colorier la barre d'état. Je n'ai aucune idée de ce que j'ai fait pour le casser en premier lieu.

    Merci.

    Edit: Voici le code de l'activité. Merci.

     import android.content.Intent; import android.os.Bundle; import android.support.design.widget.TabLayout; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; import io.craigmiller160.contacts5.R; import io.craigmiller160.contacts5.fragments.ContactsGroupsFragmentPage; import io.craigmiller160.contacts5.fragments.ContactsListFragmentPage; import io.craigmiller160.contacts5.fragments.ContactsTabsPagerAdapter; public class ContactsActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_contacts); Toolbar toolbar = (Toolbar) findViewById(R.id.contactsActivityToolbar); setSupportActionBar(toolbar); ViewPager viewPager = (ViewPager) findViewById(R.id.contactsTabsViewPager); ContactsTabsPagerAdapter adapter = new ContactsTabsPagerAdapter(getSupportFragmentManager()); adapter.addFragmentPage(new ContactsListFragmentPage(), "Contacts"); adapter.addFragmentPage(new ContactsGroupsFragmentPage(), "Groups"); viewPager.setAdapter(adapter); TabLayout tabLayout = (TabLayout) findViewById(R.id.contactsActivityTabs); tabLayout.setupWithViewPager(viewPager); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.displaySettings) { Intent intent = new Intent(this, DisplaySettingsActivity.class); startActivity(intent); return true; } return super.onOptionsItemSelected(item); } } 

    5 Solutions collect form web for “Android: la barre d'état est blanche”

     <item name="android:statusBarColor">@android:color/transparent</item> 

    Vous verrez cette ligne de code dans values/styles/styles.xml(v21) . Supprimez-le et résout le problème

    Vous pouvez y parvenir. Accédez à votre style.xml (v21) et changez simplement de couleur

      <item name="android:statusBarColor">@color/colorPrimary</item> 

    J'espère que cela va résoudre votre problème.

    Essayez ceci en tant que votre XML.

     <?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" tools:context=".activities.ContactsActivity"> <android.support.design.widget.AppBarLayout android:id="@+id/contactsActivityAppbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay"> <android.support.v7.widget.Toolbar android:id="@+id/contactsActivityToolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay" /> <android.support.design.widget.TabLayout android:id="@+id/contactsActivityTabs" android:layout_width="match_parent" android:layout_height="wrap_content" app:tabIndicatorColor="@android:color/white" android:scrollbarStyle="insideOverlay" android:paddingBottom="1dp" android:background="?attr/colorPrimary"/> </android.support.design.widget.AppBarLayout> <android.support.v4.view.ViewPager android:id="@+id/contactsTabsViewPager" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"/> </android.support.design.widget.CoordinatorLayout> 

    Je pense que vous avez peut-être réglé le thème à plusieurs reprises et se confond.

    Si tout est bien fait, la barre d' Status obtiendra sa couleur de colorPrimaryDark .

    J'ai eu ce problème exact. Je l'ai corrigé en changeant le thème de l'application pour étendre le style NoCompratActionBar AppCompat:

     <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorPrimary">@color/primary</item> <item name="colorPrimaryDark">@color/primary_dark</item> <item name="colorAccent">@color/accent</item> <item name="android:windowBackground">@color/alabaster</item> </style> 

    Ma structure d'activité est:

     <?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:ignore="MergeRootFrame"> <android.widget.RelativeLayout android:id="@+id/chat_container" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> <android.support.design.widget.AppBarLayout android:id="@+id/appbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:layout_scrollFlags="scroll|enterAlways|snap" app:popupTheme="@style/AppTheme.PopupOverlay"> </android.support.v7.widget.Toolbar> </android.support.design.widget.AppBarLayout> 

    Où RelativeLayout détient un Fragment qui a juste un RecyclerView à l'intérieur d'un RelativeLayout. Supprimez les lignes Android: statusBarColor = "@ color / colorPrimaryDark" et fitSystemWindow xml et modifiez votre thème et je pense que cela devrait fonctionner.

    Je ne peux pas dire que j'ai examiné ceci dans un détail génial, mais aucune des autres réponses n'a suggéré "windowDrawsSystemBarBackgrounds" – qui semble fonctionner sans avoir besoin de définir explicitement les couleurs de la barre d'état. Ainsi, v21 / styles.xml:

    <resources> <style name="AppTheme.NoActionBar"> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> <item name="android:windowDrawsSystemBarBackgrounds">true</item> </style> </resources>

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.