这是我用来监听软键盘可见性变化的方式:
final SoftKeyboardStateWatcher softKeyboardStateWatcher
= new SoftKeyboardStateWatcher(mainLayout);
softKeyboardStateWatcher.addSoftKeyboardStateListener(new SoftKeyboardStateWatcher.SoftKeyboardStateListener() {
@Override
public void onSoftKeyboardOpened(int keyboardHeightInPx) {
bottomToolbar.setVisibility(View.GONE);
}
@Override
public void onSoftKeyboardClosed() {
bottomToolbar.setVisibility(View.VISIBLE);
}
});
我的应用程序是针对SDK> = 16制作的,适用于所有前Lollipop设备,我在HTC One M7上使用5.0.2 Android进行了测试,结果还可以。但是,当我尝试使用Nexus 4,API 22和Nexus 5,API 23进行测试时,onSoftKeyboardOpened
和onSoftKeyboardClosed
永远不会被调用。
我该如何解决这个问题?
谢谢!
答案 0 :(得分:0)
试试这个,
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);
我希望这可以帮助你.. :)