Intereting Posts
Android Circular Определяет ProgressBar Фрагменты остаются после того, как активность Get убита и воссоздана Как получить экранные шнуры, соответствующие всему экрану, а не вид коснулся? IntentService не будет показывать Toast Предотвращение HttpClient 4 из следующего перенаправления Как выйти из приложения программно с помощью нажатия кнопки Изменение панели действий searchview подсказка цвет текста Разница между onItemClickListener и OnItemSelectedListener AdapterView Повторный запуск кнопки «Активность на дому», но … только в первый раз Как создать массив массивов с данными курсора в Android Как добавить изображение в правую сторону панели действий? Android: получить текущее местоположение пользователя без использования gps или Интернета Как установить значение по умолчанию в IntelliJ 12 для поиска? Внутренний класс внутри интерфейса, реализующий тот же интерфейс, что мы достигаем этим? Проверка на стороне сервера биллинга версии 3 для покупок в приложении Google

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

У меня есть приложение, которое имеет основной макет портрета (он фиксируется как портрет), и есть одно место для ввода текста. Я хотел бы запускать, как всплывающее окно в альбомной ориентации, с фоном изображения. Я знаю, что есть виджет 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.

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