您的位置:首页 > 移动开发 > Android开发

Android EditText在ScrollView中被输入法遮挡

2016-05-21 20:18 323 查看
千言万语不如一张图来的实在,问题如下GIF图所示[输入框被输入法挡住了]:



为了不让底部的按钮随着输入法一起起来,我把windowSoftInputMode设置为adjustPan。

<activity
android:name=".ui.product.EditProductActivity"
android:configChanges="keyboard"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan"/>


但是这个时候出现了这个问题,屏幕下面部分的输入框点击,输入法弹起来,但是输入框却被遮住了。

当我把windowSoftInputMode设置为adjustResize,这个问题可以解决,但是底部的Button按钮就出现在输入法的底部,不符合我们想要的。 设置adjustResize|adjustPan也还是没用。


需要解决的问题:当输入法显示的时候,底部的Button按钮不能在输入法的顶部;并且屏幕下面部分的输入框【EditText】不能被输入法挡住。



通过上面GIF可以看出,第一次点击的时候,输入框不会被挡住,但是当用户按返回键,再次点击该输入框,输入框就被挡住了。

细心的读者可能发现,当第一次点击
库存
输入框,不会出现遮挡的情况,但是再次点击该输入框就有问题了,当点击其他输入框,然后在点击
库存
输入框又没有问题了。

从上可以得出,如果控件得到了焦点,关闭输入法,然后再次点击该输入框就会出现遮挡用户无法输入的问题。

那么我们就可以当用户隐藏输入法的时候【如何监听输入法隐藏】,去掉输入法的焦点。

@Override
public void back(TextView textView) {
if (textView == clickEditText) {
textView.clearFocus();
}
}


back(TextView textView)方法

运行效果(GIF)【完美解决】:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: