项目中需要做评论功能,在软键盘弹出后在其上方弹出自定义的view,看下效果:
原理很简单,软键盘上方就是一个自定义的PopuWindow,在弹出PopuWindow的代码中激活了软键盘,随即PopuWindow就被软键盘顶到了其上方,里面还给PopuWindow加入了显示 和消失的动画,另外实现了对软键盘显示和隐藏状态的监听,以及对其高度的测量,需要做些逻辑处理的话可以直接在里面写相关的代码就ok了,开始上代码。。。。
1.先看下MainActivity.Java中的代码:
- public class MainActivity extends Activity implements OnClickListener {
-
- private Button bt;
- private Button btn_submit;
- private PopupWindow popupWindow;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- bt = (Button) findViewById(R.id.bt);
- bt.setOnClickListener(this);
-
- SoftKeyBoardListener.setListener(MainActivity.this,
- new SoftKeyBoardListener.OnSoftKeyBoardChangeListener() {
- @Override
- public void keyBoardShow(int height) {
- Toast.makeText(MainActivity.this,
- "键盘显示 高度" + height, Toast.LENGTH_SHORT).show();
- }
-
- @Override
- public void keyBoardHide(int height) {
- Toast.makeText(MainActivity.this,
- "键盘隐藏 高度" + height, Toast.LENGTH_SHORT).show();
- if(popupWindow!=null){
- popupWindow.dismiss();
- }
- }
- });
- }
-
-
-
-
- private void popupInputMethodWindow() {
- new Thread() {
- @Override
- public void run() {
- super.run();
- InputMethodManager imm = (InputMethodManager) getSystemService(Service.INPUT_METHOD_SERVICE);
- imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
-
- }
- }.start();
-
- }
-
-
-
-
- private void showPopupCommnet(final int pid, final int type) {