是否有软键盘上下调用的回调方法。当软键盘上下时,我想做一些动作。我知道检查键盘是上升还是下降。但我应该从某个地方调用该方法。在这里,我不想打电话给它。它应该在软键盘状态发生变化时自动触发。
答案 0 :(得分:2)
尝试使用此代码,在我的项目中使用
R.id.activityRoot
是ParentLayout ID
final View activityRootView = findViewById(R.id.activityRoot);
activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(
new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
try {
int heightDiff = activityRootView.getRootView()
.getHeight() - activityRootView.getHeight();
if (heightDiff > 100) { // if more than 100 pixels,
// its probably a
// keyboard...
//do your stuff here keyboard shown
}else { //do your stuff here keyboard not visible }
} catch (NullPointerException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
});