Android软键盘推送视图

Android软键盘推送视图,android,android-layout,view,keyboard,android-softkeyboard,Android,Android Layout,View,Keyboard,Android Softkeyboard,我正在为android开发一个软键盘,我遇到了一个我无法解决的问题。问题是,当我打开键盘时,它会错误地移动其他视图(请参见图片,我的键盘在左侧) 我尝试了在stackoverflow或其他地方找到的多种解决方案,但它们对我不起作用 我试过: android:windowSoftInputMode="adjustResize" android:windowSoftInputMode="stateHidden|adjustPan" android:windowSoftInputMode="adju

我正在为android开发一个软键盘,我遇到了一个我无法解决的问题。问题是,当我打开键盘时,它会错误地移动其他视图(请参见图片,我的键盘在左侧)

我尝试了在stackoverflow或其他地方找到的多种解决方案,但它们对我不起作用

我试过:

android:windowSoftInputMode="adjustResize"
android:windowSoftInputMode="stateHidden|adjustPan"
android:windowSoftInputMode="adjustResize|stateVisible|stateAlwaysHidden"
但这并没有改变你在截图上看到的行为

所以,请帮我解决这个问题

另外,我知道有许多类似的问题,其中提供了
“adjustResize”
“stateHidden | adjustPan”
,但这对我不起作用

p.p.s截图是在android 6.0.1中拍摄的


谢谢。

您只需将活动的WindowOfInputMode标志切换到“调整span”。移除调整大小

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

尝试使用scrollView包装布局

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

.
.
.
.
我终于找到了解决问题的方法。您需要在扩展
InputMethodService
的类中使用此代码:

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

我认为android:WindowsofInputMode可以工作,但如下所示:

android:windowSoftInputMode="adjustNothing"

试试看。

请阅读说明,解决方案“android:WindowsofInputMode”不起作用。您可以发布布局xml吗?这可能有助于理解原因,或者尝试使用android:WindowsOfInputMode=“adjustNothing”。即使您尝试了windowsSoftInputMode和其他选项,我认为它也能解决问题。“adjustNothing”不会有帮助,在xml文件中也不是问题,因为我正在开发一个键盘,而不是一个普通的应用程序,它的工作原理与普通应用程序有点不同,例如,清单中没有活动标记#Fedor Tsyganov:您是否尝试了android:WindowsOfInputMode=“StateAllwayShidden | adjustPan”@IntelliJAmiya他正在创建一个自定义键盘,所以你要如何调整平移that@Fedor添加你的代码,因为我的键盘上没有显示behaviour@VivekMishra我需要包含扩展InputMethodService的类中的代码还是扩展KeyboardView的类中的代码?@IntelliJAmiya是的,我包含了,但它不起作用