Android软键盘与输入框的设置

大家开发Android或者用app的时候会发现转到输入框就会自动弹出软键盘,切换别的页面就会自动的隐藏,下面几行代码用的熟练了就行了:

1、方法一(如果输入法在窗口上已经显示,则隐藏,反之则显示)

 
  1. InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);  
  2. imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);  

2、方法二(view为接受软键盘输入的视图,SHOW_FORCED表示强制显示)


 
  1. InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);  
  2. imm.showSoftInput(view,InputMethodManager.SHOW_FORCED);  
[java] view plaincopy
 
  1. imm.hideSoftInputFromWindow(view.getWindowToken(), 0); //强制隐藏键盘  


3、调用隐藏系统默认的输入法


  1. ((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(WidgetSearchActivity.this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);  (WidgetSearchActivity是当前的Activity)  


4、获取输入法打开的状态

    1. InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);  
    2. boolean isOpen=imm.isActive();//isOpen若返回true,则表示输入法打开  

5你的activity中的oncreate中setContentView之前写上这个代码getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);

6在项目的AndroidManifest.xml文件中界面对应的<activity>里加入android:windowSoftInputMode="stateVisible|adjustResize",这样会让屏幕整体上移。如果加上的是

                android:windowSoftInputMode="adjustPan"这样键盘就会覆盖屏幕。

7把顶级的layout替换成ScrollView,或者说在顶级的Layout上面再加一层ScrollView的封装。这样就会把软键盘和输入框一起滚动了,软键盘会一直处于底部。

注:方法一和二应该是同一种方法,不过一个是在代码里实现一个是在xml文件里实现。可能会应为1.5和之前的版本不支持该方法。但是方法三是肯定没有问题的。

(注在:以上内容来自网络:

http://blog.csdn.net/h7870181/article/details/8332991

http://www.cnblogs.com/androidez/archive/2013/04/09/3011399.html

我会提供更多的实用方法给大家,谢谢大家的关注!

原文地址:https://www.cnblogs.com/wangmars/p/3473288.html