2017-07-21 14 views
1

私の場合、アプリではソフトキーを隠していますが、通知を表示するときにソフトキーが表示されたり非表示になったりすることがあります。私のコードでは、私は、Androidで「ソフトキーの表示/非表示」イベントをキャプチャするにはどうすればよいですか?

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

を使用し、ソフトキーは、/ hideイベントを表示するときを検出するための任意のリスナーまたはコールバックがあります。

おかげで...

答えて

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); 
     }    
    } 
}); 
+0

thanxですが、私はソフトキーについて話しています。ソフトキーボード用ではなくバックとメニューに使用しています。 – Trilok

+0

ohh。 OK。 onWindowFocusChangedを試しましたか?この回答を確認してください: [link](https://stackoverflow.com/a/36966855/6345864) –

+0

はい。私はそれを試してみます。ソフトキーの非表示イベントは検出できません。 – Trilok

0

は、イベント

をキャッチする

OnGlobalLayoutListener

を追加しよう

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

     //try catching soft keys here 
    } 
    }); 
+0

thanx ..しかし、私はソフトキーについて話しています。ソフトキーボード用ではなく、バックとメニューに使うだけです。 – Trilok

+0

グローバルレイアウトリスナがソフトキーを表示するようにしてみてください。 – Rai

関連する問題