【发布时间】:2017-05-10 14:21:53
【问题描述】:
我正在使用 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 中可见,点击第二个选项卡将导致页面 2 显示为“向下滚动”状态。这使工具栏上升,在状态栏上方使工具栏标题几乎看不到阅读。请查看下面的截图(第一张图片是第1页,第二张是第2页):
如何解决这个问题?
【问题讨论】:
标签: android android-softkeyboard android-toolbar android-appbarlayout