1. 描述:
我们看市面上很多应用的登录界面,都是当输入法弹出时,账号输入框和密码输入框都会上移,不会遮住任何一个输入框,而且底部的背景图是不动的。而我们平时布局中,不管是将activity的windowSoftInputMode属性设置为adjustPan还是adjustResize, 要么就是输入框被遮挡,要么就是背景图会上移,体验则比较差。今天我们就以支付宝的登录界面为例,来处理一下这些问题。
老样子,先上图:
2.实现
(1) 问题分析:
a). 背景图不能随着键盘的显示隐藏而移动
b). 键盘显示时不能遮挡账号和密码任何一个输入框
c). 键盘显示时,头像隐藏,键盘隐藏时,头像显示
(2)实现
首先来看第一个问题:背景图不移动。我们知道一个Activity的根View是DecorView,而DecorView中又包含了ActionBar和id为content的FrameLayout,一般不管是压缩布局还是上移布局,其实操作的都是android.R.id.content这个布局,只要设置的背景图在这个布局内,图片要么会上移,要么会压缩,但是只要我们将背景图设置给DecorView,背景图