记录开发过程
long clickTime = 0;
private void softInputDealWith() {
roomLiveRootView = findViewById(R.id.roomLiveRootView);
//Activity的属性设置为可调整大小android:windowSoftInputMode="adjustResize",否则输入弹出,Activity的global layout没有变化,这种方法就无效
roomLiveRootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
int heightDiff = roomLiveRootView.getRootView().getHeight() - roomLiveRootView.getHeight();
Log.e("XXXX",heightDiff+"");
//输入法弹出或者表情按钮弹窗弹出
//华为手机有个虚拟底部导航栏,本身占据219的高度,所以高度要大于这个数,还可以适当调大
if (heightDiff > 298 ) {//高度变小100像素则认为键盘弹出
//这里执行需要的处理
rightBt.setVisibility(View.GONE);
leftBt.setVisibility(View.GONE);
isOpenExpandableWindow = true;
} else if (heightDiff < 297){
rightBt.setVisibility(View.VISIBLE);
leftBt.setVisibility(View.VISIBLE);
isOpenExpandableWindow = false;
}
if(mRongExtension != null && mRongExtension.isExtensionExpanded()) {
rightBt.setVisibility(View.GONE);
leftBt.setVisibility(View.GONE);
isOpenExpandableWindow = true;
}
}
});
//发送后隐藏弹窗
rc_send_toggle.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
clickTime = System.currentTimeMillis();
}
else if (event.getAction() == MotionEvent.ACTION_UP) {
long clickTimeDiff = System.currentTimeMillis() - clickTime;
//先关闭输入法弹窗
if (clickTimeDiff < 800)
closeWindows();
}
return false;
}
});
}
private void closeWindows() {
if(mRongExtension != null && mRongExtension.isExtensionExpanded()) {
mRongExtension.collapseExtension();
SystemUtils.closeInputMethodWindows(RoomLiveActivity.this);
}
}
@Override
public void finish() {
//先关闭输入法弹窗
if (isOpenExpandableWindow) {
closeWindows();
return;
}
//TODO 融云测试完成后开启
try {
quitRoom();
} catch (Exception e) {
e.printStackTrace();
}
//先关闭输入法弹窗
if (isOpenExpandableWindow) {
closeWindows();
}
// mPlayer.stop();
// isPausePlayer = true;
// mPlayer.releaseVideoSurface();
// mPlayer = null;
super.finish();
}
另附上一个Gighut 软键盘弹出监听:
https://github.com/yescpu/KeyboardChangeListener