Nuestro grupo especializado pasados ciertos días de investigación y de recopilar de datos, dimos con la respuesta, deseamos que todo este artículo sea de gran utilidad en tu proyecto.
Todo lo que necesita hacer es establecer estas propiedades en su tema:
- true
- true
El diseño de su actividad / contenedor que desea tener una barra de estado transparente necesita esta propiedad establecida:
android:fitsSystemWindows="true"
Por lo general, no es posible realizar esto con seguridad en pre-kitkat, parece que puede hacerlo, pero un código extraño lo hace así.
EDITAR: Recomendaría esta biblioteca: https://github.com/jgilfelt/SystemBarTint para un montón de control de color de la barra de estado previa a la piruleta.
Bueno, después de mucha deliberación, aprendí que la respuesta para deshabilitar por completo la translucidez o cualquier color colocado en la barra de estado y la barra de navegación para lollipop es establecer esta bandera en la ventana:
// In Activity's onCreate() for instance
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)
Window w = getWindow();
w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
No es necesario ningún otro tema, produce algo como esto:
Simplemente agregue esta línea de código a su archivo java principal:
getWindow().setFlags(
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
);
Funciona para Android KitKat y superior (para aquellos que quieren hacer transparente la barra de estado y no manipular la barra de navegación, ¡porque todas estas respuestas también harán transparente la barra de navegación!)
La forma más fácil de lograrlo:
Ponga estas 3 líneas de código en el styles.xml (v19)
-> si no sabe cómo tener esto (v19), simplemente escríbalos en su valor predeterminado styles.xml
y luego usar alternativa+ingresar para crearlo automáticamente:
- false
- @null
- false
Y ahora, ve a tu MainActivity
Class y pon este Método fuera de onCreate en la clase:
public static void setWindowFlag(Activity activity, final int bits, boolean on)
Window win = activity.getWindow();
WindowManager.LayoutParams winParams = win.getAttributes();
if (on) = bits;
else
winParams.flags &= ~bits;
win.setAttributes(winParams);
Luego pon este código en el onCreate
método de la Actividad:
if (Build.VERSION.SDK_INT >= 19 && Build.VERSION.SDK_INT < 21)
setWindowFlag(this, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, true);
if (Build.VERSION.SDK_INT >= 19)
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
//make fully Android Transparent Status bar
if (Build.VERSION.SDK_INT >= 21)
setWindowFlag(this, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, false);
getWindow().setStatusBarColor(Color.TRANSPARENT);
¡Eso es!
Nos puedes defender nuestro análisis poniendo un comentario o dejando una puntuación te damos las gracias.