Панель действий заменена на белую коробку с AdjustPan на Kitkat

Я использую AdjustPan для автоматического панорамирования моего приложения, чтобы сделать поле EditText видимым, когда появляется программная клавиша. До сих пор это работало хорошо, но в последних версиях Android 4.4 Kitkat панель действий отображается как обычно, но белая рамка остается позади. Я попытался отладить это с помощью инструмента Eclipse View Hierarchy, но он игнорирует поле. Я также экспериментировал со стилем v19 без удачи. Это происходит на различных устройствах и эмуляторах Kitkat Nexus.

Я счастлив оставить панель действий на экране или полностью удалить ее, когда Windows перемещается. Любая помощь будет оценена удаление коробки.

введите описание изображения здесь

1 ответ

Решение

Я обнаружил, что это происходит только с аппаратным ускорением приложений, установленным на true в файле манифеста.

Я хочу оставить аппаратное ускорение включенным, поэтому я написал этот фрагмент внутри моего метода onCreate, чтобы отключить его только для контейнера панели действий.

    if(Build.VERSION.SDK_INT == Build.VERSION_CODES.KITKAT) {
        Resources res = Resources.getSystem();
        int id = res.getIdentifier("action_bar_overlay_layout", "id", "android");
        ViewGroup overlayLayout = (ViewGroup) this.findViewById(id);
        overlayLayout.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
    }

ОБНОВИТЬ

Эта проблема была исправлена в Android L Preview API 20. Обратите внимание, что приведенный выше код вызовет исключение в Android L, поэтому условие версии должно быть явным для Kitkat.

    if(Build.VERSION.SDK_INT == Build.VERSION_CODES.KITKAT) {
Другие вопросы по тегам