2023年7月15日发(作者:)
EditText弹出软键盘遮住输⼊框问题如果在Activity中的布局的下⽅有EditText,获取焦点弹出软键盘的时候,如果不做处理,软键盘可能会遮挡输⼊框,⽤户提现不好,⽹上也有很多⼈提出结局⽅案,这⾥就分析⼀下解决的效果.需要⽤到EditText的布局⼤概分为两种,⼀种是页⾯显⽰的内容不希望有残缺,⽐如软键盘把标题挤出了屏幕,如登录注册搜索等,EditText多半在页⾯上半部分.另⼀种是页⾯的上半部分不重要,⽐如聊天窗⼝,软键盘弹出的时候,上半部分的聊天记录可以被基础屏幕外,EditText多半在最下⽅.其他的情况可以根据本⽂做出选择,结果在最下⾯.开始:⽹上针对这个问题解决的⽅法⼤概这么⼏种:1.修改⽂件.2.在Activity中添加配置.3.在布局⽂件中添加ScrollVie.1.修改⽂件在中对应的Activity配置:android:windowSoftInputMode="stateVisible|adjustResize"含义:该页⾯在弹出软键盘的同时屏幕内容被压缩,以腾出软键盘的空间.解释它们的含义:stateUnspecified:界⾯没有设置"android:windowSoftInputMode"时的状态.这个状态是弹出有EditText的界⾯时时不弹出软键盘的,当EditText获取焦点的时候弹出软件盘stateUnchanged:状态不改变,意思就是和上⼀个界⾯相同,上⼀个界⾯弹出软键盘,跳转到这个界⾯时,软键盘也是弹出状态.stateHidden:隐藏键盘,弹出这个界⾯的时候,不管上个界⾯是什么状态,这个界⾯的软键盘都是隐藏的.stateAlwaysHidden:⼀直隐藏(跟上⾯的区别未知,试不出来).stateVisible:强制弹出软键盘.跳转到界⾯后,没有EditText也弹出键盘.stateAlwaysVisible:⼀直显⽰键盘(同上).这⾥开始就是跟内容相关的了,也跟本⽂也相关adjustUnspecified:算是默认⽅式.如果界⾯没有被ScrowView包裹,键盘会挡住⼀部分内容,如果界⾯被ScrowView包裹了,会让ScrowView中的内容滚动,以放下软键盘.adjustResize:主界⾯会缩放,⽤来放置软键盘(见[图1][图2]).图1图2adjustPan:主界⾯不会缩放,会向上移来放置软键盘(见[图3][图4]).图3图4上⾯两个不同的地⽅在于,如果内容是listview,当现实最下⾯⼀个item后弹出软键盘,adjustResize会让listview下沿被软键盘挡住,adjustPan则还是现实最下⾯⼀个item.2.在Activity中添加配置在该Activity中的onCretae()的setContentView()⽅法前⾯添加:****getWindow().setSoftInputMode(_INPUT_ADJUST_PAN)****含义:把整个Layout顶上去露出获得焦点的EditText,不压缩多余空间.解释他们的含义:SOFT_INPUT_ADJUST_NOTHING: 不调整(输⼊法完全直接覆盖住,未开放此参数);SOFT_INPUT_ADJUST_PAN:把整个Layout顶上去露出获得焦点的EditText,不压缩多余空间SOFT_INPUT_ADJUST_RESIZE: 整个Layout重新编排,重新分配多余空间;SOFT_INPUT_ADJUST_UNSPECIFIED: 系统⾃⼰根据内容⾃⾏选择上两种⽅式的⼀种执⾏(默认配置).这⾥SOFT_INPUT_ADJUST_RESIZE和SOFT_INPUT_ADJUST_PAN和上⾯中的adjustResize和adjustPan效果是⼀样的.@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) { te(savedInstanceState); //让布局向上移来显⽰软键盘 getWindow().setSoftInputMode(_INPUT_ADJUST_PAN); setContentView(ty_login); init();}3.在布局⽂件中添加ScrollViewScrollView是能让弹出的软键盘添加到布局的下⾯,从⽽不挡住部分布局.这⾥往往需要跟上⾯的adjustResize和adjustPan两个状态⼀起⽤.布局: 向上移的⽅式 设置:压缩的⽅式 设置: 结果:只要弹出软键盘会影响到布局的情况,都⽤ScrollView把布局包裹起来,被包裹的内容就是可能被缩放或挤出屏幕外的内容.然后根据EditText的位置判断⽤adjustResize还是⽤Resize是收缩adjustPan是向上挤个⼈推荐,登录注册⽤adjustResize,聊天窗⼝⽤adjustPan
发布者:admin,转转请注明出处:http://www.yc00.com/news/1689429310a246783.html
评论列表(0条)