键盘弹出时调整EditTexts

时间:2017-11-22 16:51:50

标签: android

我正在制作一本联系簿申请表。 Update Contact活动负责更新现有联系人'细节。

以下图片是update contact活动

的界面

enter image description here

当我点击任何文本字段时,android设备键盘重叠文本字段。因此,为了解决该问题,我将以下代码行添加到清单文件中的update activity

android:windowSoftInputMode="adjustPan" 

添加上述行后,在

上单击名称字段时,我获得了以下界面

enter image description here

问题

目前,仅当单击键盘或将光标从名称字段移动到手机字段时,才会在键盘上显示电话字段。

我希望手机字段也在键盘上方,即使点击了名称字段也是如此。 我如何实现这一目标?

在点击名称字段时,我想要的是以下图像

enter image description here

2 个答案:

答案 0 :(得分:0)

如何设置RESIZE而不是PAN?您可以将EditText保留在SoftKeyboard上方。请尝试如下:

getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

但是,您可以在清单中将其设置为Activity(父)属性,而不是在运行时执行此操作。这也将在您的片段(子)中处理:

<activity
    android:name=".NameActivity"
    android:label="@string/app_name"
    android:windowSoftInputMode="stateAlwaysHidden|adjustResize">

然后,正如您所看到的,EditText位于SoftKeyboard之上,但是从您的布局中,您的TextView属性android:layout_alignParentBottom="true"将与EditText重叠:

要防止出现这种情况,只需将ScrollView设置在最后一个TextView上方,如下所示: 而XML就像,

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

        <ScrollView android:id="@+id/scrollView1"
        android:layout_height="fill_parent" 
        android:layout_width="fill_parent" 
        android:weightSum="1">
---
---
---
        </ScrollView> 
</LinearLayout> 

您将得到以下结果:

enter image description here

答案 1 :(得分:0)

将您的两个字段放在LinearLayout中。喜欢以下..

<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"