1

Я разрабатываю мягкую клавиатуру для андроида, и я столкнулся с проблемой, которую я не мог решить. Проблема в том, что когда я открываю клавиатуру, она неправильно перемещает другие представления (см. Рисунок, моя клавиатура слева).Android soft keyboard pushing views

This is how my problem looks like

Я попробовал несколько решений, которые я нашел на StackOverflow или где-то еще, но они не работали для меня.

Я пробовал:

android:windowSoftInputMode="adjustResize" 
android:windowSoftInputMode="stateHidden|adjustPan" 
android:windowSoftInputMode="adjustResize|stateVisible|stateAlwaysHidden" 

, но это не изменило поведение, которое вы видите на скриншоте.

Итак, пожалуйста, помогите мне решить эту проблему.

Пс. Я знаю, что есть много похожих вопросов, где предлагается "adjustResize" или "stateHidden|adjustPan", но это не работает для меня.

Снимок экрана P.p.s сделан в android 6.0.1.

Спасибо.

+0

#Fedor Цыганов: Пробовали ли вы 'андроида: windowSoftInputMode =«stateAlwaysHidden | adjustPan»' –

+0

@IntelliJAmiya он создает пользовательскую клавиатуру так, как вы собираетесь настроить кастрюлю в этом –

+0

@Fedor добавить свой код тоже, как моя клавиатура Безразлично» t показать это поведение –

ответ

1

я, наконец, нашел answer на мой вопрос. Вы должны использовать этот код в своем классе, который простирается InputMethodService:

@Override 
public void onComputeInsets(InputMethodService.Insets outInsets) { 
    super.onComputeInsets(outInsets); 
    if (!isFullscreenMode()) { 
     outInsets.contentTopInsets = outInsets.visibleTopInsets; 
    } 
} 
1

Вы можете просто переключить вашу деятельность в windowSoftInputMode флаг «adjustPan». Удалить adjustResize.

<activity 
    ... 
    android:windowSoftInputMode="adjustPan"> 
    </activity> 
+0

Пожалуйста, прочитайте описание, решение «андроид: windowSoftInputMode» Безразлично» т работы. –

+0

Можете ли вы разместить свой макет xml? Это может помочь понять причину – priyanka

+1

Или попробуйте с android: windowSoftInputMode = "adjustNothing". Даже если вы попробовали windowsSoftInputMode с другими параметрами, я думаю, что он может решить проблему. – priyanka

0

Попробуйте обернуть макет с Scrollview

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    . 
    . 
    . 
    . 
</ScrollView> 
0

Я думаю андроида: windowSoftInputMode может работать, но как это:

android:windowSoftInputMode="adjustNothing" 

Попробуйте.