0

Я хотел бы получить идентификатор мягкой клавиатуры в android для определения высоты клавиатуры. Конечной целью является то, что я хочу переместить вид на экране по вертикали, чтобы быть расположенным между верхней частью клавиатуры и нижней частью строки состояния. Я могу получить высоту строки состояния со следующим кодом:Как получить идентификатор мягкой клавиатуры в android

int statusBarHeight = 0; 
int resourceId = Resources.GetIdentifier("status_bar_height", "dimen", "android"); 
if(resourceId > 0) { 
    statusBarHeight = Resources.GetDimensionPixelSize(resourceId); 
} 

Могу ли я получить высоту мягкой клавиатуры таким же образом? Я использую Xamarin, потому что я использую бэкэнд между моим приложением iOS и Android-приложением, но код, похоже, очень похож на Android. Я также полностью создаю свои взгляды в коде, который я предпочитаю; поэтому мой вопрос в том, как я могу получить высоту клавиатуры в коде, чтобы позиционировать представление в коде?

+0

Могу ли я предложить Viewtree наблюдатель обрамления слушателя. Вы можете использовать простые математические вычисления, чтобы получить высоту клавиатуры от этого –

ответ

0

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

вопрос ниже, может помочь вам, как это помогло мне:

Is there any way in android to get the height of virtual keyboard of device

+0

rootView.ViewTreeObserver.GlobalLayout + = (отправитель объекта, EventArgs e) => { Rect r = new Rect(); layout.GetWindowVisibleDisplayFrame (r); int screenH = layout.RootView.Height; int heightDiff = screenH - (r.Bottom - r.Top); если (высотаDiff> экранH/4) { клавиатураHeight = высотаDiff; } }; – tribute2ro

Смежные вопросы