方向变化时出现的键盘问题

12

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

我的另一个问题是我的某个编辑文本位于屏幕末尾。当键盘出现时,它会隐藏编辑文本,因此用户无法看到他正在输入什么。如何处理这种情况是最理想的方式。 谢谢。

5个回答

34

解决所有问题的方法是这一行代码:android:windowSoftInputMode="stateUnchanged|adjustResize"

"stateUnchanged"将使键盘状态与先前状态相同,无论是隐藏还是显示。

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

希望这有所帮助!!!

编辑

需要将此添加到Android清单文件中。


我们遵循基于Google建议的单一活动Android应用程序。我已经在活动中添加了onConfigChanges。在我的一个片段中,我通过重新附加和分离片段来刷新整个片段。上述解决方案在该特定片段中对我不起作用。您有任何建议吗? - Raghul Vaikundam

3

我曾经遇到过这个问题。如果你有TextViews,并且想在旋转屏幕时避免键盘重新出现,你需要做两件事情-

  1. Make sure the TextView doesn't have the focus. Even after hiding the keyboard, a TextView can still be focused. Try calling

    textView.clearFocus()
    

    and you should be able to see the difference in the TextView.

  2. Make sure there is another view before it (like a parent LinearLayout, or even just a LinearLayout with 0 width and 0 height) which has these properties-

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

2
尝试在清单文件中的活动属性中添加此代码。
 android:windowSoftInputMode="stateHidden|adjustPan"

喜欢

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

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

谢谢Antrromet,但这会让我的键盘始终处于隐藏状态。我不想这样。无论如何还是感谢你。 - Android
它不会一直隐藏。只有在启动活动时,它才不会打开键盘。如果您单击EditText,则会启动键盘。 - Antrromet

0
针对第二个问题: 您可以将布局设置为ScrollView,以避免键盘出现时隐藏edittext。 将整个布局放入ScrollView中。

我之前正在使用滚动视图,但是Black Devil的答案已经很完整了。非常感谢您的帮助。 - Android

0

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