Keyboard hiding EditText when android:windowTranslucentStatus=true

Roc Boronat picture Roc Boronat · Nov 11, 2013 · Viewed 14.7k times · Source

We're applying the new Android KitKat translucent theme in our apps, and we're getting a weird issue when the keyboard appears. If we don't use the new android:windowTranslucentStatus attribute, all works as usual: The screen is resized, and all remains visible. But when we're using android:windowTranslucentStatus, the screen isn't resized and our EditText becomes hidden by the keyboard.

A sample of the issue: http://fewlaps.com/xtra/quitnowStackoverflow.png

The only difference between the screens is in the attribute in the style:

First screen: <item name="android:windowTranslucentStatus">false</item>

Second screen: <item name="android:windowTranslucentStatus">true</item>

We think this is a bug from Kitkat release, but we want you to be aware of this. We're getting a little mad. Of course, if someone have a solution, it will be amazing.

EDIT: I just added this issue to the Android issue tracker. Probably you'll be interested in starring the issue: https://issuetracker.google.com/issues/36986276

Answer

DanielGrech picture DanielGrech · Jan 20, 2014

I also ran into this very annoying issue. But eventually I got this working:

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

Instead of setting fitSystemWindows="true" in the theme, I set it on the root view of my layout..

<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>

I also use the great SystemBarTintManager in my activity:

new SystemBarTintManager(this).setStatusBarTintEnabled(true);

This seems to work well, but admittedly seems pretty fickle. Hope it helps someone anyway!