Может быть, какой-то фон: я пытаюсь, чтобы конкретный вид клавиатуры был виден над прокручиваемым полноэкранным 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-вид или как он вплетается в общий экран?Как он прокручивает себя под полем редактирования, перемещает поле редактирования вверх и заставляет его прокручиваться, как это делает?