пользовательское поведение прокрутки макета - PullRequest
0 голосов
/ 29 апреля 2018

У меня есть макет, где я использую макет координатора, чтобы свернуть appbarlayout на панель инструментов, когда пользователь прокручивает экран.

Поведение по умолчанию довольно точное, но проблемы появляются, когда пользователь нажимает на текстовое поле редактирования, как только отображается программная клавиша, экран поднимается вверх (я использую флаг «настроить изменение размера моей деятельности») и макет панели приложения выключен.

Чего я хочу достичь:

  • сворачивать макет панели приложения на панель инструментов, когда пользователь прокручивает (у меня это уже реализовано)

  • сворачивать макет панели приложения на панель инструментов всякий раз, когда отображается программная клавиатура.

Возможно ли это?

С уважением.

1 Ответ

0 голосов
/ 29 апреля 2018

Если вы хотите свернуть AppBarLayout, когда отображается Soft Keyboard, вы можете выполнить следующие два шага:

1- Используйте эту библиотеку для обнаружения событий видимости программной клавиатуры: https://github.com/yshrsmz/KeyboardVisibilityEvent

2- Когда программная клавиатура открывается, используйте этот метод, чтобы свернуть AppBarLayout:

appBarLayout.setExpanded(false);

Пример:

KeyboardVisibilityEvent.setEventListener(
    getActivity(),//Or context
    new KeyboardVisibilityEventListener() {
        @Override
        public void onVisibilityChanged(boolean isOpen) {
            if(isOpen){
                appBarLayout.setExpanded(false);
            }
        }
    });
...