Клавиатура Android Soft: Как управлять представлениями на клавиатуре вкл / выкл - PullRequest
1 голос
/ 05 августа 2010

У меня есть макет, который имеет один большой вид EditText вверху + несколько кнопок внизу.EditText сделан для сжатия и расширения, когда время активируется / деактивируется с помощью Adjust_resize.Кнопки внизу находятся над ime.

Я хотел бы скрыть эти кнопки при отображении ime, чтобы обеспечить достаточно места для представления EditText.

Я уже пробовалследующее:

  • с подклассами EditText и предоставило активности возможность зарегистрировать обратный вызов в OnSizeChanged представления.

  • Использовал этот обратный вызов для измененияВидимость кнопок (на самом деле контейнер макета) для GONE.

Это работает нормально и скрывает кнопки, когда всплывающее окно.Однако EditText не расширяется в новое доступное пространство.Кроме того, когда ime удален, поле EditText теперь больше, чем оно было изначально, нажимая (теперь показывающие) кнопки за пределами экрана.

Я должен также добавить это при вводе первой буквы в представлениии время отображает параметры слова, экран перерисовывается, а EditText заполняет свободное место.

Есть идеи, как заставить это работать?Или, что еще лучше, есть ли более простое решение для моего требования?

Спасибо ...

Примечание: на мой взгляд, прокрутка не является хорошим вариантом.

Ответы [ 2 ]

1 голос
/ 06 августа 2010

Я получил это для работы, немного изменив вышеуказанный метод:

  • Обернул весь макет с FrameLayout

  • , подклассом FrameLayoutи предоставил активности возможность зарегистрировать обратный вызов в OnMeasure макета

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

Я быТем не менее, я буду очень рад услышать о более простых решениях, особенно в том, что касается выяснения того, видна ли в данный момент клавиатура или нет.(Окно dumpsys показывает эту информацию. Можем ли мы легко добраться до нее?)

0 голосов
/ 05 августа 2010

Вы пытались позвонить myView.invalidade()?

Я использовал свойство GONE, но затем изменил значение на button.setVisibility(View.INVISIBLE);, потому что на моем экране нет ничего другого.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...