我正在制作一本联系簿申请表。 Update Contact
活动负责更新现有联系人'细节。
以下图片是update contact
活动
当我点击任何文本字段时,android设备键盘重叠文本字段。因此,为了解决该问题,我将以下代码行添加到清单文件中的update activity
android:windowSoftInputMode="adjustPan"
添加上述行后,在
上单击名称字段时,我获得了以下界面目前,仅当单击键盘或将光标从名称字段移动到手机字段时,才会在键盘上显示电话字段。
我希望手机字段也在键盘上方,即使点击了名称字段也是如此。 我如何实现这一目标?
在点击名称字段时,我想要的是以下图像
答案 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>
您将得到以下结果:
答案 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"