Android开发 Android 软盘 遮一部分EditText

目录

一、NestedScrollView/ScrollView造成EditText全遮住

windowSoftInputMode属性:

二、EditText被软盘遮住部分


一、NestedScrollView/ScrollView造成EditText全遮住

解决办法:在AndroidManifest.xml对应的Activity的注册处,添加android:windowSoftInputMode="adjustPan",就可以解决软盘全遮住EditText的问题

 <activity
            android:name=".view.activity"
            android:screenOrientation="portrait"
            android:windowSoftInputMode="adjustPan"/>

windowSoftInputMode属性:

此属性是在 API 级别 14 中添加的。android:windowSoftInputMode活动的主窗口如何与包含以下内容的窗互 屏幕软键盘。此属性的设置影响两个 事情:当活动变为 用户关注的焦点。活动的主窗口是否为 调整大小以为软键盘或其内容腾出空间 平移以使当前焦点在窗口的一部分被覆盖时可见 软键盘。
该设置必须是下表中列出的值之一或 一个值加一个值的组合。在任一组中设置多个值(如多个值)具有未定义的结果。
 各个值由竖线 “|”分隔,

  如以下示例所示:<activity android:windowSoftInputMode="stateVisible|adjustResize" ... >
此处设置的值(与 除外)将覆盖主题中设置的值。"stateUnspecified""adjustUnspecified"

价值描述
stateUnspecified软键盘是隐藏还是可见 未指定。系统选择适当的状态或 依赖于主题中的设置。这是软键盘行为的默认设置。
stateUnchanged软键盘保持上次处于的任何状态, 可见或隐藏,当活动脱颖而出时。
stateHidden当用户选择活动时,软键盘将隐藏 - 即 是,当用户肯定地向前导航到 活动,而不是在离开另一个活动时后退。
stateAlwaysHidden当活动的主窗口时,软键盘始终处于隐藏状态 具有输入焦点。
stateVisible当用户选择 活动 - 即,当用户肯定地向前导航时 到活动,而不是在离开另一个活动时退缩 活动。
stateAlwaysVisible当窗口收到输入焦点时,软键盘可见。
adjustUnspecified活动的主窗口是否调整大小 为软键盘或内容腾出空间 未指定窗口平移以使当前焦点在屏幕上可见。 系统根据 关于窗口的内容是否具有任何布局视图 可以滚动其内容。如果有这样的视图,窗口 调整大小,假设滚动可以使所有 在较小区域内可见的窗口内容。这是主窗口行为的默认设置。
adjustResize活动的主窗口始终会调整大小,以便为 屏幕上的软键盘。
adjustPan活动的主窗口不会调整大小以为软窗口腾出空间 键盘。相反,窗口的内容会自动 平移,以便当前焦点永远不会被键盘遮挡, 用户始终可以看到他们正在键入的内容。这通常更少 比调整大小更可取,因为用户可能需要关闭软 键盘,用于访问窗口的遮挡部分并与之交互。

二、EditText被软盘遮住部分

在开发中对于EditText的高度往往我们设置了固定大小,这就造成了软盘定位到输入文字底的高度,如果EditText固定高度高于文字高度就会使软盘遮住超过文字高度的部分,所有在设置EditText的高度时我们可以使用android:paddingVertical来实现。


            <EditText
                android:id="@+id/et"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="29sp"
                android:paddingVertical="13dp"
                android:background=""
                android:hint=""
                android:inputType="number"
                android:maxLength="11"
                android:maxLines="1"
                android:paddingLeft="16dp"
                android:textSize="16sp" />

 

如果对您有一些意义,希望您给博主一些鼓励(点赞、关注、收藏),如果有错误欢迎大家评论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值