不使用android:windowSoftInputMode属性,实现软键盘遮盖最下面布局的效果

废话不多说上图


这是页面,业务上希望当用户选择 预售价格(此时会弹出输入软键盘),键盘遮盖住“保存并下一步”按钮

如图:


OK,就是这个效果,光标定位到当前的输入框。

现有问题:

1.android:windowSoftInputMode属性其中有对软键盘进行控制的关键有2个属性

分别是: 

"adjustResize"

Activity主窗口总是被调整屏幕的大小以便留出软键盘的空间

"adjustPan"

Activity主窗口并不调整屏幕的大小以便留出软键盘的空间。相反,当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分。这个通常是不期望比调整大小,因为用户可能关闭软键盘以便获得与被覆盖内容的交互操作。


以上2个属性设置后,均无法满足,业务需求。 adjustResize属性会导致整个布局文件往上走,会看到 1,2,3 那个被遮盖了一部分,需求是那作为导航按钮摆放的,必然不允许动,adjustPan   属性无法满足,会导致下面的按钮往上顶,在输入法的上面。


实现思路:


1. 这两个属性不能用,干脆抛弃。

2. 我的这个页面父布局是RelativeLayout,让“保存并下一步”这个Layout在代码里动态的设置MarginTop的值,让其能在布局的最底部1. 为啥用MarginTop而不用属性android:layout_alignParentBottom="true"   ?    因为设置该属性  就又被顶上来       2. 为啥动态设置,为了适配多分辨。

OK,这么设置就看结果吧。哈哈。完全没问题喽







  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值