android edittext在键盘打开时变得部分可见

时间:2014-12-14 16:34:24

标签: android android-linearlayout

键盘打开时遇到问题,编辑文本部分显示,例如不是全视图。

截图:

enter image description here

这是布局代码:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/lightgreen"
    android:fillViewport="true"
    android:padding="20dp" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/lightgreen"
        android:orientation="vertical" >

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/str_mobilenumber"
            android:textSize="16sp" />

        <EditText
            android:id="@+id/reg_mobile"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="phone" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/str_password"
            android:textSize="16sp" />

        <EditText
            android:id="@+id/reg_password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="textPassword" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/str_password_confirm"
            android:textSize="16sp" />

        <EditText
            android:id="@+id/reg_password_confirm"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="textPassword" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/str_fullname"
            android:textSize="16sp" />

        <EditText
            android:id="@+id/reg_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            tools:ignore="TextFields" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/str_email"
            android:textSize="16sp" />

        <EditText
            android:id="@+id/reg_email"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="textEmailAddress" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="3dp"
            android:text="@string/str_city"
            android:textSize="16sp" />

        <Spinner
            android:id="@+id/reg_city"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:entries="@array/cities_array"
            android:prompt="@string/str_city" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/str_zip"
            android:textSize="16sp" />

        <EditText
            android:id="@+id/reg_zip"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:inputType="phone" />

        <Button
            android:id="@+id/btnRegister"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:onClick="actionRegister"
            android:text="@string/str_register" />
    </LinearLayout>

</ScrollView>

任何编辑文本字段都会出现同样的问题,当键盘输入时,它不会完全显示。有什么方法可以避免这个问题吗?

由于

2 个答案:

答案 0 :(得分:3)

问题是你的布局和键盘空间不足。您可以滚动视图以防止出现此问题。有两种方法可以做到这一点:

“adjustResize”

活动的主窗口始终调整大小,以便为屏幕上的软键盘腾出空间。

“adjustPan”

活动的主窗口未调整大小以便为软键盘腾出空间。相反,窗口的内容会自动平移,以便键盘不会遮挡当前焦点,用户可以随时看到他们正在键入的内容。这通常不如调整大小,因为用户可能需要关闭软键盘才能进入并与窗口的模糊部分进行交互。

您应该将此行添加到manifest.xml

中的活动代码中
<activity android:windowSoftInputMode="adjustResize"> </activity>

答案 1 :(得分:3)

查看the activity element的可用属性,尤其是android:windowSoftInputMode。您可以考虑添加adjustResize:

  

活动的主窗口始终调整大小,以便为屏幕上的软键盘腾出空间。

或adjustPan:

  

活动的主窗口未调整大小以便为软键盘腾出空间。相反,窗口的内容会自动平移,以便键盘不会遮挡当前焦点,用户可以随时看到他们正在键入的内容。这通常不如调整大小,因为用户可能需要关闭软键盘才能进入并与窗口的模糊部分进行交互。

取决于您的具体要求。

使用示例:

<activity android:windowSoftInputMode="adjustResize" />

This answer也可能对您有用。