Android:如何防止显示虚拟键盘时调整窗口大小

22
我正在使用选项卡应用程序。我的应用程序有一个EditText。当我点击EditText时,窗口会被调整大小,并在窗口底部显示虚拟键盘。但是四个选项卡会显示在键盘的顶部。
我不想显示选项卡,当键盘显示时。或者,我不想调整我的窗口大小。我的需求只是隐藏在EditText下面的选项卡和其他内容。
我在清单中使用了“android:windowSoftInputMode”的所有选项,但我看不到任何区别。
请给我解决方案。
谢谢。。

你有没有使用RelativeLayout? - Axarydax
是的,我正在使用相对布局。 - Jomia
3个回答

21

我找到了解决办法.. 针对"sencha/phonegap/cordova"用户。

编辑Android清单文件中的主活动,添加此属性。

android:windowSoftInputMode="adjustNothing"

  <activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale"
            android:windowSoftInputMode="adjustNothing"  
            android:label="@string/app_name" 
            android:launchMode="singleTop" 
            android:name="com.company.appName.MainActivity" 
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Black.NoTitleBar">

    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter> 
</activity>

9

你好,感谢您的帖子。当我在清单文件中使用android:windowSoftInputMode="adjustPan"时,可以隐藏选项卡。但是我仍然遇到一个问题。软键盘覆盖了EditText的下半部分。这种情况发生在最上面的EditText到最下面的EditText之间。您能帮助我将软键盘放置在每个EditText正下方吗? - Jomia
我也试过那个方法。但问题仍然存在。 - Jomia
1
我知道现在有点晚了,但是对于其他需要解决问题的人来说,我的情况是应用程序主题是全屏的。所以,只需更改您的应用程序主题,它将按照所述的方式正常工作并得到预期的结果... - MobileEvangelist

3
我遇到了与原帖作者Mudassir所提供解决方案无关的同样问题。我不想让我的窗口被移动或调整大小,所以无论是adjustPan还是adjustResize都不适用。
我只是希望窗口的位置不受影响。
我发现可以调用getWindow,然后将y positiongravity设置为top|center_horizontal,这样就可以解决那些在键盘弹出时没有重叠的窗口的问题。
对于那些部分被键盘覆盖的大窗口,似乎没有办法防止键盘推动它们。

谢谢。经过6个小时的尝试,alertDialog.getWindow().setGravity(Gravity.TOP|Gravity.CENTER_HORIZONTAL) 终于奏效了。 - CelinHC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接