如何捕捉"软键显示/隐藏" Android中的活动?

时间:2017-07-21 07:01:21

标签: android android-activity navigationbar softkeys

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

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

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

...谢谢

2 个答案:

答案 0 :(得分: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);
        }               
    }
});

答案 1 :(得分:0)

尝试添加

  

OnGlobalLayoutListener

抓住事件

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

      //try catching soft keys here
    }
    });
相关问题