Android:调用onPause()时隐藏或销毁视图

时间:2016-09-16 09:25:29

标签: android android-fragments custom-keyboard

您正在我的片段中使用自定义键盘视图。当用户点击编辑文本时,我会看到这个视图

insideEdit.setOnTouchListener(new OnTouchListener() {
                public boolean onTouch(View v, MotionEvent event) {

                    mKeyboardViewTolerance = new CustomKeyboard(getActivity(), R.id.keyboardviewtolerance, R.xml.keyboard_layout);
                    mKeyboardViewTolerance.showCustomKeyboard(insideEdit);
                    insideEdit.setInputType(InputType.TYPE_NULL);
                    return false;
                }
            });

当用户切换到其他片段并转到同一片段并点击edittext时,视图不会呈现。我可以看到视图在那里,但视图在屏幕上不可见。

我尝试将其隐藏在OnPause()中,但视图仍然不可见

 @Override
    public void onPause() {
         if(mKeyboardViewTolerance != null && mKeyboardViewTolerance.isCustomKeyboardVisible()){

                mKeyboardViewTolerance.hideCustomKeyboard();
            }
}

2 个答案:

答案 0 :(得分:0)

尝试在EditText上使用焦点侦听器。

答案 1 :(得分:0)

使用此代码,它将解决您的问题:

 View view = this.getCurrentFocus();
 if (view != null) {
   InputMethodManager mInputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            mInputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0);
}