"AdjustResize" Android - PullRequest
       0

"AdjustResize" Android

3 голосов
/ 18 июня 2011

У меня есть приложение, которое работает в полноэкранном режиме с помощью:

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

Из-за этого макет android:windowSoftInputMode="adjustResize" не работает должным образом, т.е. он не изменяет размер.

Есть ли способ решить проблему?

Ответы [ 2 ]

5 голосов
/ 08 октября 2011

К вашему сведению: это существующая ошибка AOSP (Android Open Source Project): http://code.google.com/p/android/issues/detail?id=5497

В идеале эта ошибка будет исправлена, но до этого момента есть пара мыслей о том, как ее можно обойти. Поскольку я понятия не имею, к какому сценарию приложения это относится, они могут быть не очень применимы.

  1. В соответствии с моей лучшей интерпретацией предыдущего ответа, спроектируйте свой макет так, чтобы настройка AdjustPan работала нормально с ним. Первое, о чем я могу подумать, это отсутствие заголовков или колонтитулов, которые должны оставаться на экране, когда клавиатура поднята.

  2. Не используйте FLAG_FULLSCREEN с макетом, который может принимать ввод текста. Возможно, не будет большой проблемой показывать строку состояния при принятии ввода. Однако для того, что просматривает контент со встроенными полями ввода (например, веб-браузер), который имеет полноэкранный режим, это не имеет особого смысла.

  3. Реализуйте свое поведение, подобное AdjustResize. Я не уверен, насколько хорошо это будет работать, но, возможно, вы могли бы написать подкласс того класса, который вызывает отображение клавиатуры (например, EditText), где вы либо отслеживаете, когда клавиатура отображается, либо принимаете вызовы, чтобы показать и скрыть клавиатуру (переопределяя по крайней мере onKeyUp и onTouchEvent). Когда показано, измените размер вашего контента - возможно, с наилучшим предположением высоты softinput, так как пользователи могут устанавливать различные методы мягкого ввода. Я считаю, что это будет технически сложно и нецелесообразно делать без крайней необходимости.

3 голосов
/ 18 июня 2011

Вместо android:windowSoftInputMode="adjustResize" вы можете попробовать с android:windowSoftInputMode="adjustPan"

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