Как показывает редактирования текстового поле «над» экраном?

голоса
15

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

Задан 20/01/2009 в 09:01
источник пользователем
На других языках...                            


1 ответов

голоса
37

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

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

Создание ввода текста активность

Создать новую активность содержит только 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для запуска ввода текста активности. В течение этого вызова активности setResultвозвращать текстовую строку введенной в возвращаемом намерении , используя методы , описанные в этом сообщении .

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

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

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

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

android:configChanges="keyboardHidden"

В рамках этой деятельности, переопределения onConfigurationChangedдля запуска ввода текста активности.

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

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

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

Ответил 20/01/2009 в 10:18
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more