2

如果我将文本输入放在页面的下半部分,当用户点击它以显示虚拟键盘时,页面会自动向上滑动。当您离开键盘时,页面会自动再次向下滑动。即,一切都很好。

但是当文本输入位于页面的半部分时(在这种情况下,当键盘出现时页面不会自动滑动),行为很糟糕:

  1. 用户点击文本输入;

  2. 整个屏幕(文本输入除外)瞬间变黑,然后键盘向上滑动;

  3. 用户轻敲键盘;

  4. 在再次呈现页面之前,屏幕会闪烁黑色。

但是,如果您再次尝试上述步骤,则顺序为: 1. 同上;

  1. 同上;

  2. 同上;

  3. 屏幕变黑并保持黑色;

  4. 用户点击黑屏;

  5. 页面再次显示。

我尝试了一些不同的方法,例如检测文本输入何时失去焦点(即键盘隐藏)以显示到页面、滚动页面等,但似乎没有什么能阻止黑屏的这个问题。

当文本输入失去焦点时显示 javascript 警报可以避免黑屏问题(但我也不希望显示警报!)。

我还尝试在我的 AndroidManifest.xml 标记中使用 android:hardwareAccelerated="true"。虽然这确实解决了这个特殊问题,但不幸的是,它在整个 Web 应用程序中产生了更多的渲染问题。

有没有人有什么建议?

4

1 回答 1

0

将此代码放在清单文件中的启动活动标记中

android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"

android:windowSoftInputMode="stateHidden|adjustPan"
于 2017-02-28T09:52:15.433 回答