Android 软键盘隐藏编辑文本

Android 软键盘隐藏编辑文本,android,android-edittext,android-softkeyboard,Android,Android Edittext,Android Softkeyboard,我有一个布局,它使用EditText让用户搜索数据库并填充ListView。编辑文本距离屏幕顶部约2/3(位于图像视图上方,后面是一些介绍文本) 问题是,软键盘隐藏了编辑文本,因此用户无法看到他正在键入的内容。(我禁用了自动建议。) 我尝试过线性布局、相对线布局、填充和不同的对齐/居中,但仍然无法使其正常工作。编辑文本要么被隐藏,要么被推离屏幕顶部,要么被“压扁”并扭曲 建议 一种可能的解决方法是将EditText移动到屏幕顶部。然而,这与我得到的平面设计不同 另一个可能的解决办法是让软键盘全屏

我有一个布局,它使用EditText让用户搜索数据库并填充ListView。编辑文本距离屏幕顶部约2/3(位于图像视图上方,后面是一些介绍文本)

问题是,软键盘隐藏了编辑文本,因此用户无法看到他正在键入的内容。(我禁用了自动建议。)

我尝试过线性布局、相对线布局、填充和不同的对齐/居中,但仍然无法使其正常工作。编辑文本要么被隐藏,要么被推离屏幕顶部,要么被“压扁”并扭曲

建议

一种可能的解决方法是将EditText移动到屏幕顶部。然而,这与我得到的平面设计不同

另一个可能的解决办法是让软键盘全屏打开(但不知道如何打开)。这仍然会隐藏编辑文本,但我可以重新启用自动建议,以便用户可以看到他正在键入的内容。。。某种程度上。。。因为他只能看到他输入内容的建议

这是我的最新尝试。请参阅“介绍框架”



尝试为编辑文本赋予版面权重(即版面权重=1),这可能会对您可能需要处理的其他版面项目产生一些其他影响,但这可能有助于在软键盘弹出时使其保持可见

您要查找的是活动的属性。您可以在AndroidManifest.xml文件中设置该值,并为其指定一个值,例如:

  • adjustResize
    :“活动的主窗口总是调整大小,以便为屏幕上的软键盘腾出空间。”

  • adjustPan
    :“活动的主窗口没有调整大小以便为软键盘腾出空间。相反,窗口的内容会自动平移,以便当前焦点不会被键盘遮挡,用户可以随时看到他们正在键入的内容。这通常不如调整大小,因为用户可能需要关闭软键盘才能接触到窗口的模糊部分并与之交互。”
adjustResize可能适合您,只要您将布局包装在滚动视图中。如果您的背景中有位图图像,它可能会产生负面影响,因为它也会被调整大小,在这种情况下,您可能希望使用adjustPan

<activity android:windowSoftInputMode="adjustResize" />



以上链接提供了更多信息。

对我有效的方法是在scrollView中删除我的最高级别LinearLayout(scrollView只能有一个子项)。这允许整个活动/表单向上滚动,而不会使焦点中的编辑文本混乱

首先,我在活动中设置:

<activity android:windowSoftInputMode="adjustPan" />

然后我做了我所说的ScrollView:

<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
  <LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!-- STUFF -->

  </LinearLayout>
</ScrollView>

只需在清单中使用以下内容即可

  <activity
        android:windowSoftInputMode="adjustPan">


在ICS上对我不起作用。是否知道将stateHidden添加到WindowsofInputMode可能会导致此问题?不作为FragmentActivity的子项在片段中对我起作用。不作为FragmentActivity的子项在片段中对我起作用。当应用程序以全屏模式运行时,这不起作用。这就是解决我问题的方法
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
  <LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!-- STUFF -->

  </LinearLayout>
</ScrollView>
  <activity
        android:windowSoftInputMode="adjustPan">