如何在键盘上方显示我的滚动布局?

时间:2012-08-30 07:56:31

标签: android android-layout scrollview android-softkeyboard

在相对布局中使用滚动视图。

当没有键盘时,我可以在所有手机中滚动到页面的末尾,在某些手机中,我可以在键盘打开时完全查看滚动布局。 ie) - 键盘上方滚动视图的结尾。

我分析的问题是因为不同Android设备的键盘类型不同。

得到一些答案,在活动清单中添加windowSoftInputMode。

同时添加:android:windowSoftInputMode="stateHidden|adjustResize"

但仍然遇到同样的问题。如果您有解决方案或遇到问题,请分享您的想法。谢谢你的时间。

4 个答案:

答案 0 :(得分:3)

我遇到了这个类似问题的问题。 android:windowSoftInputMode="adjustResize"有时会发挥作用,而不是其他时间。为什么不呢?

这个答案谈到Android全屏主题。 Honeycomb (3.1) adjustResize no longer working?

对我来说问题是这里的问题:getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

将标志设置为全屏会阻止键盘出现时正确滚动。

答案 1 :(得分:1)

在onCreate中尝试此代码:

getWindow().setSoftInputMode(
            WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

答案 2 :(得分:1)

这些其他答案应该是解决你的问题,所以当我犹豫是否建议以下解决方案时,我会把它扔出去,以防万一你被迫时间/不做一个非常关键的项目:使用一个OnGlobalLayoutListener。

真的没有办法绝对知道softKeyboard是否已被提升(遗憾),但你可以做的是调整你的布局,使键盘空间位于你的滚动视图下方(即将高度重置为当前高度 - 键盘的高度。)

an answer here可以解释如何做得很好。同样,我还不完全清楚你的问题是什么,因为我们还没有看到代码等等,而且很难诊断为什么其他答案没有解决问题......但是如果你真的卡住了 - 给它试一试:))

答案 3 :(得分:0)

您可以将配置放在AdroidManifest.xml中的任何活动上,如此......

 <activity android:name=".views.ViewportActivity"
                  **android:windowSoftInputMode="adjustPan|adjustResize"**
                  android:label="@string/app_name"
                  android:configChanges="locale"
                  android:screenOrientation="portrait"
                  android:theme="@android:style/Theme.NoTitleBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
        </activity>