我有一个具有一组页面的View Pager。当用户在第一页上时,键盘弹出。当我在页面中滑动时,键盘没有关闭(这是实现方式)。现在当我在第四页或第五页上时,我明确尝试使用以下代码关闭键盘,但是它不起作用。有人告诉我,这是因为键盘是在单独的页面上打开的(按不同的片段)。
InputMethodManager imm = (InputMethodManager)Context.GetSystemService(Activity.InputMethodService);
View v = ((Activity)context).CurrentFocus;
if (v == null)
return;
imm.HideSoftInputFromWindow(WindowToken, 0);
windowtoken在这里是如何映射的。我猜它是用来关联打开键盘的视图窗口的。但是,不要将寻呼机中的所有页面都显示在同一个窗口中,实质上,它们具有相同的标记。如果是这样,为什么不起作用
最佳答案
我们可以切换输入。在这里使用-
public static void toggle(Activity activity){
InputMethodManager imm = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE);
if (imm.isActive()){
// Hide keyboard
imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);
} else {
// Show keyboard
imm.toggleSoftInput(0, InputMethodManager.HIDE_IMPLICIT_ONLY);
}
}