完全解决输入法覆盖EditText问题, 将界面所有EditText放在输入上方
2014-11-05 16:51
585 查看
</pre> 在应用开发的过程中界面可能出现多个edittext,当开启键盘时可能遮住处在界面下方的edittext。目前解决方法可按下面方案依次推进。<p></p><p>1.在activity的配置文件中设置<span style="color:rgb(68,68,68); font-family:'Microsoft Yahei',Tahoma,Simsun; font-size:14px; line-height:21px">android:windowSoftInputMode="adjustPan|adjustResize" 但这种方式只适用界面中只有一个edittext的情况,因为输入法有可能覆盖当前获取焦点的edittext下方的其他edittext。2.对上面残留的问题我们可以在布局文件中将跟布局设为Scrollview 这样在输入法弹出时用户可以通过滚动界面来编辑edittext,同时也可以监听edittext的statechange事件使用如下方法来将scrollview滚动到底部。</span></p><p><span style="color:rgb(68,68,68); font-family:'Microsoft Yahei',Tahoma,Simsun; font-size:14px; line-height:21px"></span></p><pre name="code" class="java">scrollview.post(new Runnable() { @Override public void run() { // TODO Auto-generated method stub scrollview.fullScroll(ScrollView.FOCUS_DOWN); } });
但这样也存在一个潜在的问题,即当滚动到底部时界面会重新刷新,这样有可能使edittext失去焦点,用户需重新点击一次才能编
辑。
3.对上面的问题可采用下面的方法
<pre name="code" class="java">scrollview.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() { @Override public void onGlobalLayout() { // TODO Auto-generated method stub scrollview.post(new Runnable() { @Override public void run() { // TODO Auto-generated method stub A,B,C为三个不同的edittext int flag = 0; if(A.isFocused()) flag = 1; else if(B.isFocused()) flag = 2; else if(C.isFocused()) flag = 3; scrollview.fullScroll(ScrollView.FOCUS_DOWN); if(flag == 1) A.requestFocus(); else if(flag == 2) B.requestFocus(); else if(flag == 3) C.requestFocus();; } }); } });
相关文章推荐
- 界面底部的edittext被弹出的软键盘覆盖的问题解决方法
- 布局中上面一个子布局,中间一个listview,下面一个edittext,解决edittext点击后输入法遮盖布局的问题
- android开发中有EditText,当输入时输入法会把底部的导航栏顶上去。如何解决?
- 自定义AlertDialog,以及解决自定义Dialog中EditText不能弹出输入法的问题
- Android开发 解决AlertDialog中的EditText无法调出输入法的问题
- android 带EditText的popwindow 当弹出输入法后popwindow被输入法覆盖掉的解决方法。
- 用于解决AlertDialog中需要向EditText输入内容却不能弹出输入法
- Android开发 解决AlertDialog中的EditText无法调出输入法的问题 .
- 关于AlertDialog中嵌入Edittext无法弹出输入法的问题解决
- 解决android 中在沉浸式布局下,EditText输入框在界面底部,在弹出输入法时将顶部标题栏向上推出界面问题
- 【Android 界面效果12】EditText中的多行输入问题
- 手机调用系统的拍照和裁剪功能,假设界面有输入框EditText,在一些手机会出现点击EditText会弹出输入法,却不能输入的情况。
- 手机调用系统的拍照和裁剪功能,如果界面有输入框EditText,在一些手机会出现点击EditText会弹出输入法,却不能输入的情况。
- 解决Android EditText多行输入,内容或边框显示的问题
- 手机调用系统的拍照和裁剪功能,假设界面有输入框EditText,在一些手机会出现点击EditText会弹出输入法,却不能输入的情况。
- 解决状态栏加了颜色EditText被输入法遮挡问题(api>=19)
- 【Android 界面效果12】EditText中的多行输入问题
- 短信会话界面EditText,焦点获取直接弹出输入法的问题
- 实现qq聊天界面设计 完美解决edittext 软键盘弹出时listview背景不被挤压+listview Item和edittext的相对位置不变
- Android开发 解决AlertDialog中的EditText无法调出输入法的问题