Android 全屏就一个EditText

      公司需要一个全屏就一个EditText,编辑标题文本等。也没多想,本来很简单。做了全屏,还搞了好看的缩进背景。

      可是提交给测试后,提了一堆bug,都是易用性和体验性的bug。郁闷,啪啪两下写完的代码,还那么多问题:

1、文本满屏后把也上面的标题栏(标题是继承BaseActivity来的)顶没了。

2、输入满屏还多的文本后,点最后一行 软键盘文件盖住了。

3、继续1后,把满屏的文字删掉,标题栏竟然没跟着回来,必须把软键盘退出才回来。


第一想到肯定是在Manifest里面搞软件盘的控制了,可是本来开发的是插件,容器做得还很垃圾,竟然都不支撑Manifest里面生命的属性。

第二肯定有想到用代码来设置软键盘的属性吧 ,可能是本人技术烂,设置了

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
//这个软键盘不盖住了,接近了3,可是 1并没解决,标题栏还是给顶出去了。然后设置了 

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

//这下1解决了,标题栏再也不给顶出屏幕了,可是2,没解决,软键盘永远盖住文字。

后来项目中给EditText套了一层ScrollView,没指定其他属性,只知道宽高match_parent。这样解决了所以问题。

       然后觉得好不甘心,然后回家接着测试。在项目的基础上 ScrollView指定了android:scrollbars="none"因为默认有滑动条。这下发现所有问题都出现了。还是把标题栏顶出屏幕。

后来还是设置了  getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE)

解决了。开始的项目赶估计晕菜了,所有当时以为这个没用。

再接着测试,把ScrollView 去掉,只了一个EditText。然后指定getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE),问题也完美解决。EditText默认没有滑动条了,所有手贱还是指定了android:scrollbars="none" 。然后没影响效果。


综合以上所述,结论就是:指定了getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE),就可以解决以上三点问题;



觉得这个写的比较全:

http://technicalsearch.iteye.com/blog/1967715

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值