Android 当键盘弹出时调整编辑文本

Android 当键盘弹出时调整编辑文本,android,Android,我正在申请联系簿更新联系人活动负责更新现有联系人的详细信息 下图是更新联系人活动的界面 当我点击任何文本字段时,android设备键盘与文本字段重叠。所以为了解决这个问题,我在清单文件的更新活动中添加了以下代码行 android:windowSoftInputMode="adjustPan" 在添加了上面的行之后,当单击name字段时,我得到了以下界面 问题 目前,只有在键盘上单击或将光标从名称字段移动到电话字段时,电话字段才会显示在键盘上 我希望即使在单击“姓名”字段时,电话字段也位于

我正在申请联系簿<代码>更新联系人活动负责更新现有联系人的详细信息

下图是
更新联系人
活动的界面

当我点击任何文本字段时,android设备键盘与文本字段重叠。所以为了解决这个问题,我在清单文件的
更新活动中添加了以下代码行

android:windowSoftInputMode="adjustPan" 
在添加了上面的行之后,当单击name字段时,我得到了以下界面

问题 目前,只有在键盘上单击或将光标从名称字段移动到电话字段时,电话字段才会显示在键盘上

我希望即使在单击“姓名”字段时,电话字段也位于键盘上方我如何才能做到这一点?

下面的图片是我想要的当名字字段被点击


设置“调整大小”而不是“平移”怎么样?您可以将编辑文本保持在软键盘上方。尝试如下:

getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
但是,您可以在清单中将其设置为活动(父)属性,而不是在运行时执行此操作。这也将在片段(子片段)中处理:

您将得到以下结果:


设置“调整大小”而不是“平移”怎么样?您可以将编辑文本保持在软键盘上方。尝试如下:

getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
但是,您可以在清单中将其设置为活动(父)属性,而不是在运行时执行此操作。这也将在片段(子片段)中处理:

您将得到以下结果:


将两个字段放入
线性布局中
。像下面这样

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_gravity="bottom"
        android:id="@+id/ll">
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="name"
            android:id="@+id/edit1"/>
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="password"
            android:id="@+id/edit2"/>
    </LinearLayout>

将此标记写入活动中的
Manifest.xml


android:windowSoftInputMode=“adjustResize”
将两个字段放入
线性布局中。像下面这样

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_gravity="bottom"
        android:id="@+id/ll">
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="name"
            android:id="@+id/edit1"/>
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="password"
            android:id="@+id/edit2"/>
    </LinearLayout>

将此标记写入活动中的
Manifest.xml


添加此项不会改变任何内容。键盘仍然与两个文本字段重叠我有点困惑,我是否必须将scrollview放在这个活动的父布局或最后一个textview上?
从您的布局中,您有一个带有android:layout\u alignParentBottom=“true”属性的textview
我没有在父布局底部对齐的textview。我正在使用
constraint布局
,而
手机
文本视图位于
更新联系人
按钮上方,该按钮位于父布局的底部
放置除父布局以外的所有组件
尝试过此操作,但手机字段仅在我滚动或直接输入时显示在键盘上方单击电话字段。当键盘弹出时,我不能自动调整键盘上方的两个字段吗?以这种方式更改为ScrollView:<代码>android:WindowsOfInputMode=“StateAllwayShidden | adjustResize”
添加此项不会改变任何内容。键盘仍然与两个文本字段重叠我有点困惑,我是否必须将scrollview放在这个活动的父布局或最后一个textview上?
从您的布局中,您有一个带有android:layout\u alignParentBottom=“true”属性的textview
我没有在父布局底部对齐的textview。我正在使用
constraint布局
,而
手机
文本视图位于
更新联系人
按钮上方,该按钮位于父布局的底部
放置除父布局以外的所有组件
尝试过此操作,但手机字段仅在我滚动或直接输入时显示在键盘上方单击电话字段。当键盘弹出时,我不能自动调整键盘上方的两个字段吗?以这种方式更改为ScrollView:。。。。。。。。。。。我试过了,但没什么改变。键盘仍然与字段重叠。尝试过,但没有改变任何内容。键盘仍然与字段重叠。