Pregunta Teclado que oculta EditText cuando android: windowTranslucentStatus = true


Estamos aplicando el nuevo tema de Android KitKat translúcido en nuestras aplicaciones, y estamos teniendo un problema extraño cuando aparece el teclado. Si no usamos el nuevo android:windowTranslucentStatus atributo, todo funciona como siempre: la pantalla cambia de tamaño y todo permanece visible. Pero cuando estamos usando android:windowTranslucentStatus, la pantalla no se redimensiona y nuestra EditText queda oculto por el teclado.

Una muestra del problema: http://fewlaps.com/xtra/quitnowStackoverflow.png

La única diferencia entre las pantallas está en el atributo en el estilo:

Primera pantalla: <item name="android:windowTranslucentStatus">false</item>

Segunda pantalla: <item name="android:windowTranslucentStatus">true</item>

Creemos que es un error de la versión de Kitkat, pero queremos que se dé cuenta de esto. Nos estamos poniendo un poco enojados. Por supuesto, si alguien tiene una solución, será increíble.

EDITAR: Acabo de agregar este problema al rastreador de problemas de Android. Probablemente te interese protagonizar el problema: https://issuetracker.google.com/issues/36986276


32
2017-11-11 01:17


origen


Respuestas:


También me encontré con este problema muy molesto. Pero eventualmente conseguí esto funcionando:

<style name="Theme.MyApp">
    <item name="android:windowTranslucentStatus">true</item>
</style>

En lugar de establecer fitSystemWindows = "true" en el tema, lo configuro en la vista raíz de mi diseño.

<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fitsSystemWindows="true"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</FrameLayout>

También uso el gran SystemBarTintManager en mi actividad:

new SystemBarTintManager(this).setStatusBarTintEnabled(true);

Esto parece funcionar bien, pero ciertamente parece bastante voluble. Espero que ayude a alguien de todos modos!


7
2018-01-20 22:35



Una solución alternativa sería:

Agregue un Touch o Focus o ClickListener y suba el layout de EditText hasta la mitad de la pantalla. Sin embargo, esta no es la manera en que debería funcionar, así que mantén los dedos cruzados y espera que Google lo solucione.

EditText e = new EditText(this);
    e.setOnFocusChangeListener(new OnFocusChangeListener() {

        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            if(hasFocus)
                v.animate().x(screenHeight/2f).start();
            else
                v.animate().x(screenHeight).start();
        }
    });

Simplemente ajuste v a su disposición de espera y asegúrese de que las posiciones en las que se mueve se vean bien.


0
2017-11-11 02:30



poner esto debajo de las líneas después de oncreate en tu actividad

    int currentapiVersion = android.os.Build.VERSION.SDK_INT;
    if (currentapiVersion >= android.os.Build.VERSION_CODES.LOLLIPOP) {
        Window window = this.getWindow();
        window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
        window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        window.setStatusBarColor(mCategoryColors.getColorStatusBar());
    }

Trabaja para mi :)


0
2017-09-24 09:04



Esta no es una solución perfecta, pero una solución que encontré fue establecer android:windowSoftInputMode="adjustPan" en AndroidManifest.xml.

Tenga en cuenta que esto desplazará toda la ventana fuera del camino del teclado, en lugar de cambiar su tamaño.

Más información aquí (buscar windowSoftInputMode)


0
2018-01-11 04:31



conjunto android:windowSoftInputMode="adjustPan" en AndroidManifest.xml está bien Pero solo quiero decir que no funciona cuando la actividad es FullScreen, para más detalles ver Android Cómo ajustar el diseño en el modo de pantalla completa cuando el teclado está visible


0
2018-01-23 04:32



Agregue lo siguiente también

<item name="android:fitsSystemWindows">true</item>

-1
2018-01-20 22:02