具体使用
editView.setEditView(llKeyboard, keyboardView, true); editView.setOnKeyboardListener(new EditView.OnKeyboardListener() { @Override public void onHide(boolean isCompleted) { if (height > 0) { llGuan.scrollBy(0, -(height + DensityUtil.dp2px(MainActivity.this, 16))); } if (isCompleted) { Log.i("", "你点击了完成按钮"); } } @Override public void onShow() { llGuan.post(new Runnable() { @Override public void run() { //pos[0]: X,pos[1]: Y int[] pos = new int[2]; //获取编辑框在整个屏幕中的坐标 editView.getLocationOnScreen(pos); //编辑框的Bottom坐标和键盘Top坐标的差 height = (pos[1] + editView.getHeight()) - (ScreenUtil.getScreenHeight(MainActivity.this) - keyboardView.getHeight()); if (height > 0) { //编辑框和键盘之间预留出16dp的距离 llGuan.scrollBy(0, height + DensityUtil.dp2px(MainActivity.this, 16)); } } }); } @Override public void onPress(int primaryCode) { } }); llKeyboard为包裹键盘的父布局,llGuan为包裹输入框的父布局。
