我需要知道何时显示Notification
,其行为类似于操作系统在EditText
聚焦时显示的"更改输入法",因此在我的应用程序中不能仅限于EditText
s。
有办法吗?一些Listener
或Intent
?我应该在源代码的哪里去研究操作系统是如何做到这一点的?
按如下操作
LinearLayout mainLayout;
mainLayout = (LinearLayout) findViewById(R.id.mian_layout);
mainLayout.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Rect r = new Rect();
mainLayout.getWindowVisibleDisplayFrame(r);
int heightDiff = mainLayout.getRootView().getHeight() - (r.bottom - r.top);
if (heightDiff > 100) {
// keyboard is open.
} else {
//keyboard is closed.
}
}
});