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