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 在键盘打开时变得部分可见的主要内容,如果未能解决你的问题,请参考以下文章

Android EditText软键盘问题

EditText表现得很奇怪

Android EditText 禁止自动弹出键盘

Android Soft Keyboard在重新打开时隐藏EditText

Android的EditText在怎样获取焦点并弹出软键盘

Android设置EditText默认取消焦点