问题:直播评论时,需要部分布局随软键盘移动,直播画面等不动
解决方案:监听软键盘显示隐藏,代码设置控件移动
使用第三方框架进行软件盘监听:com.github.yoyoyaobin:PreventKeyboardBlockUtil
但是这个框架不对导航栏进行处理,需要在上层重新封装。
import android.app.Activity;
import android.content.res.Configuration;
import android.view.View;
import com.blankj.utilcode.util.KeyboardUtils;
import com.hyb.library.KeyboardHeightObserver;
import com.hyb.library.KeyboardHeightProvider;
/**
* @author chenpin
*/
public class KeyboardManager {
private int keyBoardHeight = 0;
/**用于在UI线程启动监听*/
private View mBtnView;
private Activity mActivity;
private KeyboardListener mKeyboardListener;
private KeyboardHeightProvider keyboardHeightProvider;
/**记录界面打开时,导航栏是否显示*/
private boolean firstNavigationShow;
/**记录手机全面屏进来时,会赋值软键盘高度为负数*/
private int firstKeyboardHeight;
public KeyboardManager(Activity activity,View view){
mActivity = activity;
if(keyboardHeightProvider != null){
keyboardHeightProvider.recycle();
keyboardHeightProvider = null;
}
this.mBtnView = view;
keyboardHeightProvider = new KeyboardHeightProvider(activity);
firstNavigationShow = NavigationManager.hasNavigationBar(activity);
}
public void setmKeyboardListener(KeyboardListener mKeyboardListener) {
this.mKeyboardListener = mKeyboardListener;
}
public void register(){
keyboardHeightProvider.setKeyboardHeightObserver(new KeyboardHeightObserver() {
@Override
public void onKeyboardHeightChanged(int height, int orientation) {
if (orientation == Configuration.ORIENTATION_LANDSCAPE) {
return;
}
//如果为负数,那么是第一