今天,项目遇到这个问题,在网上找了好久,都不理想,好多都是copy的。结果在大神的帮助下完成,代码如下:
public void hideIputKeyboard(final Context context) {
final Activity activity = (Activity) context;
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
InputMethodManager mInputKeyBoard = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
if (activity.getCurrentFocus() != null) {
mInputKeyBoard.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
}
}
});
}
那什么时候,调用这段代码呢?
在ViewPage切换时,即:
viewPage.setOnPageChangeListener(xxxx);
然后你们说:setOnPageChangeListener不是过期了吗,那么我们就换个函数:
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
@Override
public void onPageSelected(int position) {
//添上这个函数,下面有函数的定义
hideIputKeyboard(context);
}
@Override
public void onPageScrollStateChanged(int state) {
}
});