android edittext 在键盘打开时变得部分可见
Posted
技术标签:
【中文标题】android edittext 在键盘打开时变得部分可见【英文标题】:android edittext becomes partically visible on keyboard open 【发布时间】:2014-12-14 16:34:24 【问题描述】:我在打开键盘时遇到问题,编辑文本部分显示,例如不是完整视图。
截图:
这是布局代码:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_
android:layout_
android:background="@color/lightgreen"
android:fillViewport="true"
android:padding="20dp" >
<LinearLayout
android:layout_
android:layout_
android:background="@color/lightgreen"
android:orientation="vertical" >
<TextView
android:layout_
android:layout_
android:text="@string/str_mobilenumber"
android:textSize="16sp" />
<EditText
android:id="@+id/reg_mobile"
android:layout_
android:layout_
android:inputType="phone" />
<TextView
android:layout_
android:layout_
android:text="@string/str_password"
android:textSize="16sp" />
<EditText
android:id="@+id/reg_password"
android:layout_
android:layout_
android:inputType="textPassword" />
<TextView
android:layout_
android:layout_
android:text="@string/str_password_confirm"
android:textSize="16sp" />
<EditText
android:id="@+id/reg_password_confirm"
android:layout_
android:layout_
android:inputType="textPassword" />
<TextView
android:layout_
android:layout_
android:text="@string/str_fullname"
android:textSize="16sp" />
<EditText
android:id="@+id/reg_name"
android:layout_
android:layout_
tools:ignore="TextFields" />
<TextView
android:layout_
android:layout_
android:text="@string/str_email"
android:textSize="16sp" />
<EditText
android:id="@+id/reg_email"
android:layout_
android:layout_
android:inputType="textEmailAddress" />
<TextView
android:layout_
android:layout_
android:layout_marginBottom="3dp"
android:text="@string/str_city"
android:textSize="16sp" />
<Spinner
android:id="@+id/reg_city"
android:layout_
android:layout_
android:entries="@array/cities_array"
android:prompt="@string/str_city" />
<TextView
android:layout_
android:layout_
android:text="@string/str_zip"
android:textSize="16sp" />
<EditText
android:id="@+id/reg_zip"
android:layout_
android:layout_
android:layout_marginBottom="10dp"
android:inputType="phone" />
<Button
android:id="@+id/btnRegister"
android:layout_
android:layout_
android:onClick="actionRegister"
android:text="@string/str_register" />
</LinearLayout>
</ScrollView>
任何编辑文本字段都会出现同样的问题,当键盘打开时,它不会完全显示。有什么办法可以避免这个问题吗?
谢谢
【问题讨论】:
您使用过 ScrollView,因此即使打开键盘,您也可以向下滚动并查看 edittext 和其他不可见的视图 【参考方案1】:问题是您的布局和键盘空间不足。您可以滚动查看以防止出现此问题。有两种方法可以做到这一点:
“调整大小”
Activity 的主窗口总是会调整大小,以便为屏幕上的软键盘腾出空间。
“调整盘”
Activity 的主窗口没有调整大小来为软键盘腾出空间。相反,窗口的内容会自动平移,因此当前焦点永远不会被键盘遮挡,用户始终可以看到他们正在输入的内容。这通常不如调整大小可取,因为用户可能需要关闭软键盘才能到达窗口的模糊部分并与之交互。
您应该将此行添加到manifest.xml
内的活动标签中
<activity android:windowSoftInputMode="adjustResize"> </activity>
【讨论】:
【参考方案2】:查看the activity element 的可用属性,尤其是android:windowSoftInputMode
。您可以考虑添加任一adjustResize:
Activity 的主窗口总是会调整大小,以便为屏幕上的软键盘腾出空间。
或调整平移:
Activity 的主窗口没有调整大小来为软键盘腾出空间。相反,窗口的内容会自动平移,因此当前焦点永远不会被键盘遮挡,用户始终可以看到他们正在输入的内容。这通常不如调整大小可取,因为用户可能需要关闭软键盘才能到达窗口的模糊部分并与之交互。
取决于您的具体要求。
示例用法:
<activity android:windowSoftInputMode="adjustResize" />
This answer 也可能对阅读有用。
【讨论】:
以上是关于android edittext 在键盘打开时变得部分可见的主要内容,如果未能解决你的问题,请参考以下文章