Não tenho certeza de qual nível de API você está tentando atingir, mas se você pode usar coisas específicas da API 23, você pode adicionar o seguinte ao seu AppTheme styles.xml:
<item name="android:statusBarColor">@color/colorPrimaryDark</item>
<item name="android:windowLightStatusBar">true</item>
quando android:windowLightStatusBar
estiver definido como verdadeiro, a cor do texto da barra de status poderá ser vista quando a cor da barra de status for branca, e vice-versa quando android:windowLightStatusBar
for definido como falso, a cor do texto da barra de status será projetada para ser vista quando a cor da barra de status for Sombrio.
Exemplo:
<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>
você pode fazer isso programaticamente como esta resposta
apenas adicione isso
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
fonte
é muito simples:
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
e 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
fonte
Como anterior, o SYSTEM_UI_FLAG_LIGHT_STATUS_BAR faz o trabalho no meu caso, não esqueça de configurar para maior que API 22.
adicione isso a oncreate após setContentView:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); }
fonte
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
Funciona para mim
fonte
Experimente uma vez.
Em seu
onCreate()
método de atividade , cole o código a seguir.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(); }
Nota: color_red - é a cor da barra de status.
fonte
No seu
onCreate()
método de atividade , cole o seguinte código após osetContentView(R.layout.activity_generic_main);
Aqui está o código de exemplo abaixo.
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); } }
fonte
Experimente se não for a página inicial
fonte