Saltar al contenido

¿Barra de estado completamente transparente de Android?

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:

ingrese la descripción de la imagen aquí

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *