【问题标题】:Keyboard issues arising on orientation change方向变化引起的键盘问题
【发布时间】:2017-04-24 13:57:15
【问题描述】:

在我的应用程序中,我使用了各种编辑文本和文本视图以及列表视图。 现在我的问题是我的键盘在方向改变时再次出现。理想情况下,当用户最小化键盘时,当设备倾斜时它应该处于最小化状态。但它又出现了。我们如何处理这种情况。

我的另一个问题是我的编辑文本之一是屏幕末尾的一些内容。当键盘出现时,它会隐藏编辑文本。所以用户无法看到他正在输入的内容。处理这个问题的理想方法是什么。 谢谢。

【问题讨论】:

    标签: android keyboard


    【解决方案1】:

    所有问题的解决方案是这条线 android:windowSoftInputMode="stateUnchanged|adjustResize"

    “stateUnchanged”将使键盘的状态与之前的状态相同。隐藏或可见。

    “adjustResize”将使您的编辑文本可见。

    希望这会有所帮助。!!!

    编辑

    这需要在android manifest文件中添加。

    【讨论】:

    • 我们遵循基于 Google 推荐的 Single Activity Android 应用程序。我在活动中添加了 onConfigChanges。在我的片段中,我通过再次附加和分离片段来刷新整个片段。上述解决方案在该特定片段中不适用于我。您对此有什么建议
    【解决方案2】:

    我遇到了同样的问题。当你有 TextViews 时,要防止键盘在旋转时重新出现,你必须做两件事 -

    1. 确保 TextView 没有焦点。即使隐藏了键盘,TextView 仍然可以聚焦。尝试调用

      textView.clearFocus()
      

      您应该能够在 TextView 中看到差异。

    2. 确保在它之前有另一个视图(如父 LinearLayout,甚至只是一个宽度为 0 和高度为 0 的 LinearLayout),它具有这些属性-

      android:focusable="true"
      android:focusableInTouchMode="true"
      

    【讨论】:

      【解决方案3】:

      尝试在清单中的“活动”属性中添加此代码

       android:windowSoftInputMode="stateHidden|adjustPan"
      

      喜欢

       <activity
                  android:name=".MyActivity"
                  android:windowSoftInputMode="stateHidden|adjustPan" >
      

      这应该可以解决你的两个问题

      【讨论】:

      • 感谢 Antrromet,但它会让我的键盘永远隐藏起来。我不想要这个。感谢任何方式。
      • 它不会一直隐藏。启动活动时,它不会打开键盘。如果您单击 EditText,则会启动键盘。
      【解决方案4】:

      对于第二个问题: 您可以将布局设置为 ScrollView 以避免在键盘出现时隐藏编辑文本。 将整个布局放在一个 ScrollView 中。

      【讨论】:

      • 我使用的是滚动视图,但黑魔的答案本身就是完整的。非常感谢您的帮助。
      【解决方案5】:

      我发现以下文档有助于理解与软键盘相关的各种标志: https://developer.android.com/guide/topics/manifest/activity-element.html#wsoft

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-16
        • 1970-01-01
        • 1970-01-01
        • 2011-02-28
        • 1970-01-01
        相关资源
        最近更新 更多