1

就我而言,我在应用程序中隐藏了软键,但有时在显示通知时软键会显示和隐藏。在我使用的代码中,

    View decorView = getWindow().getDecorView();

    int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_FULLSCREEN
            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;

    decorView.setSystemUiVisibility(uiOptions);

是否有任何侦听器或回调来检测软键何时显示/隐藏事件。

谢谢...

4

2 回答 2

0

尝试添加

OnGlobalLayoutListener

赶上事件

contentView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
    @Override
    public void onGlobalLayout() {

      //try catching soft keys here
    }
    });
于 2017-07-21T07:27:46.460 回答
0

尝试在编辑文本上使用 OnFocusChangeListener():

myEditText.setOnFocusChangeListener(new OnFocusChangeListener() {

    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if(!hasFocus){
            InputMethodManager imm = 
(InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(yourEditText.getWindowToken(), 0);
        }               
    }
});
于 2017-07-21T07:25:05.947 回答