viewpager 打开界面一直弹出软键盘

来源:互联网 发布:nightwatch.js 编辑:程序博客网 时间:2024/06/05 10:34
1)当在某个页面输入信息时弹出软键盘,使用ViewPager切换页面时,软键盘依旧存在。
解决方法:1、定义两个变量
             private InputMethodManager manager;
             private View currentFocus;
          2、在onCreate中初始化manager
             manager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
          3、在ViewPager的事件监听onPageSelected中定义隐藏输入法
             /**解决ViewPager切换页面时软键盘依旧弹出的问题*/
    currentFocus = MainActivity.this.getCurrentFocus();//得到获取焦点的view
    if(currentFocus != null){
//检查输入法是否打开
if(manager.isActive()){
    //隐藏软键盘
    try {
manager.hideSoftInputFromWindow(currentFocus.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
    } catch (Exception e) {
e.printStackTrace();
      }
}

   }


2)使用ViewPager切换页面,当使用软键盘输入时,底部的按钮视图会被顶上去。
解决方法:在AndroidManifest.xml中将使用ViewPager的Activity里添加android:windowSoftInputMode="adjustPan" 
          如:<activity
                  android:name=".MainActivity"
               android:label="@string/app_name"
                  android:windowSoftInputMode="adjustPan" >
                  <intent-filter>
                      <action android:name="android.intent.action.MAIN" />


                      <category android:name="android.intent.category.LAUNCHER" />
                  </intent-filter>
              </activity>

原创粉丝点击