Android:键盘解雇导致滚动到底部

时间:2017-05-10 05:20:46

标签: android android-softkeyboard android-toolbar android-appbarlayout

我使用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):

Page1 Page2

如何纠正这个问题?

1 个答案:

答案 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);