Android: какой макет при активном IME? - PullRequest
3 голосов
/ 03 ноября 2010

Может быть, какой-то фон: я пытаюсь, чтобы конкретный вид клавиатуры был виден над прокручиваемым полноэкранным EditText, когда пользователь щелкает по нему.Проблема в том, что если курсор находится внизу EditText, то он скрыт всплывающим видом клавиатуры.

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

Поэтому мой вопрос: как выглядит макет, когда виден обычный IME?Мне не нужна анимация (если это трудно сделать, я могу пропустить эту часть).

Я попытался перебрать иерархию макетов, чтобы увидеть, что отличается.Вот оно с видимым IME:

root: com.android.internal.policy.impl.PhoneWindow$DecorView
  android.widget.LinearLayout
    android.widget.FrameLayout
      android.widget.TextView
    android.widget.FrameLayout               #1
      android.widget.RelativeLayout
        android.widget.ScrollView
          android.widget.EditText
        com.mytest.KeyboardView

Вот оно без IME и моего всплывающего окна:

root: com.android.internal.policy.impl.PhoneWindow$DecorView
  android.widget.LinearLayout
    android.widget.FrameLayout
      android.widget.TextView
    android.widget.FrameLayout               #1
      android.widget.RelativeLayout
        android.widget.ScrollView
          android.widget.EditText
        com.mytest.KeyboardView

Очевидно, что нет никакой разницы.Действительно ли отсутствует IME?

Для облегчения понимания я пометил свое приложение "# 1", поэтому RelativeLayout является корневым элементом в моем XML-макете.

Может кто-нибудь пожалуйстаПомоги мне?Если у кого-то есть готовый макет в стиле XML, я был бы более чем рад его увидеть.

Обновление

Теперь я считаю, что ошибался, полагая, что представление IME будетпоставить себя в иерархию макетов действия.

Тем временем я пытался сделать работу PopupWindow, но не смог придумать что-то, что решило бы проблему со скрытым курсором вEditText.

Поэтому позвольте мне спросить: как выглядит IME-вид или как он вплетается в общий экран?Как он прокручивает себя под полем редактирования, перемещает поле редактирования вверх и заставляет его прокручиваться, как это делает?

1 Ответ

0 голосов
/ 23 ноября 2010

Кажется, что IME недоступен. Или, по крайней мере, приложение никак не доступно приложению.

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

...