Intereting Posts
Создание виджета Android с помощью телефонной заставки Android Media Recorder не записывает длинные видео в Google Glass Когда isGooglePlayServicesAvailable возвращает SERVICE_VERSION_UPDATE_REQUIRED? CMUSphinx PocketSphinx – распознает все (или большое количество) слов Можно ли использовать Python для написания кросс-платформенных приложений для iOS и Android? SharedPreferences не удаляются, когда я удаляю InterruptedException при отладке приложения для Android Есть ли хороший инструмент для разработки макета Android? Android Telegram App -> java.lang.UnsatisfiedLinkError: не реализована реализация для void NoClassDefFoundError в mapActivity IntelliJ IDEA – ничего не может построить, всегда получается, что «пакет R не существует» Создайте Android-приложение с подключеннымInstrumentTest, не работающим на Jenkins Фрагмент с несколькими стоп-кадрами Создайте progressDialog только со спиннером (посередине) Com.jayway.maven.plugins.android.generation2: Выполнение плагина не распространяется на конфигурацию жизненного цикла?

Как показать окно редактирования текста над экраном?

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

Solutions Collecting From Web of "Как показать окно редактирования текста над экраном?"

Самое простое решение вашей проблемы – отобразить ваш EditText в отдельном dialog тематическом действии, которое вы запускаете из своей основной (фиксированной по портрету) активности.

Действие EditText не должно иметь фиксированной ориентации, поэтому оно будет вращаться, как вы ожидаете, когда вы выдвигаете клавиатуру.

Создание операции ввода текста

Создайте новый Activity, содержащий только EditText View и все, что вы хотите включить (возможно, кнопки OK / Отмена и, возможно, ярлык?). Внутри манифеста задайте свою тему Theme.Dialog .

 <activity android:name="TextEntryActivity" android:label="My Activity" android:theme="@android:style/Theme.Dialog"/> 

Затухание или размытие действий за диалогом выполняется путем изменения свойств окна переднего плана (диалог ввода текста). Внутри метода onCreate используйте getWindow().setFlags применяет размытие к любому фону.

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

Запуск и чтение введенных значений из операции ввода текста

Используйте startActivityForResult для запуска текстовой записи Activity. Внутри этого вызова Activity setResult возвращает текстовую строку, setResult в возвращаемое намерение, используя методы, описанные в этом сообщении .

Переопределите метод onActivityResult для прослушивания результата из вспомогательной активности.

Запуск запуска на клавиатуре

Вы можете запускать операцию ввода текста, когда захотите, но если вы хотите всегда отображать ее при открытии клавиатуры, вы можете зафиксировать это событие явно.

Начните с добавления атрибута android:configChanges в запись манифеста портрета Activity. Он должен быть зарегистрирован для прослушивания keyboardHidden .

 android:configChanges="keyboardHidden" 

Внутри этого действия переопределите onConfigurationChanged чтобы запустить текстовую запись Activity.

 @Override public void onConfigurationChanged(Configuration newConfig) { Intent i = new Intent(this,TextEntryActivity.class); startActivityForResult(i, STATIC_INTEGER_VALUE); } 

Вы можете проверить, чтобы клавиатура была открыта (а не скрыта), используя переменную newConfig, прежде чем запускать текстовую запись Activity.

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