我使用ViewPager在我的应用程序中将两个片段显示为页面。在第1页中,有EditText字段。当我滚动到Page2(或选择Tab2)时,我想以编程方式关闭与任何这些文本字段相关联的键盘(在第1页中)。我已经为此编写了以下代码:
mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
View currentView = getCurrentFocus();
if (currentView != null) {
InputMethodManager imm = (InputMethodManager) currentView.getContext().getSystemService(Activity.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(currentView.getWindowToken(), 0);
}
} });
如果键盘在第1页中可见,则点按第二个标签会导致显示在向下滚动的页面中'州。这使得工具栏在状态栏上升,使得工具栏标题几乎不可读。请查看下面的屏幕截图(第一张图片是第1页,第二张是Page2):
如何纠正这个问题?
答案 0 :(得分:0)
尝试这样做有效
editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
switch ((actionId))
{
case EditorInfo.IME_NULL:break;
}
return false;
}
});

并致电editText.onEditorAction(EditorInfo.IME_NULL);