在我的情况下,我在应用程序中隐藏了软键,但有时软键会在显示通知时显示和隐藏。在我使用的代码中,
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);
是否有任何侦听器或回调来检测软键显示/隐藏事件的时间。
...谢谢
答案 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
}
});