android:imeOptions="actionSend" // 起关键作用

 messageInput.setOnEditorActionListener(new TextView.OnEditorActionListener() {            @Override            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {                if (actionId == EditorInfo.IME_ACTION_SEND) {                    sendMessage(Body_type.txt, "");                    return true;                }                return false;            }        });

键盘显示与隐藏 监听

public class KeyboardStatusDetector {    KeyboardVisibilityListener visibilityListener;    boolean keyboardVisible = false;    public void registerFragment(Fragment f) {        registerView(f.getView());    }    public KeyboardStatusDetector registerActivity(Activity a) {        return registerView(a.getWindow().getDecorView().findViewById(android.R.id.content));    }    public KeyboardStatusDetector registerView(final View v) {        v.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {            @Override            public void onGlobalLayout() {                Rect r = new Rect();                v.getWindowVisibleDisplayFrame(r);                int heightDiff = v.getRootView().getHeight() - (r.bottom - r.top);                if (heightDiff > 100) { // if more than 100 pixels, its probably a keyboard...                    /** Check this variable to debounce layout events */                    if (!keyboardVisible) {                        keyboardVisible = true;                        if (visibilityListener != null)                            visibilityListener.onVisibilityChanged(true);                    }                } else {                    if (keyboardVisible) {                        keyboardVisible = false;                        if (visibilityListener != null)                            visibilityListener.onVisibilityChanged(false);                    }                }            }        });        return this;    }    public KeyboardStatusDetector setVisibilityListener(KeyboardVisibilityListener listener) {        visibilityListener = listener;        return this;    }    public static interface KeyboardVisibilityListener {        public void onVisibilityChanged(boolean keyboardVisible);    }}

// 使用:

 View rootView = getWindow().getDecorView().findViewById(android.R.id.content);        new KeyboardStatusDetector()                .registerView(rootView)  //or register to an activity                .setVisibilityListener(new KeyboardStatusDetector.KeyboardVisibilityListener() {                    @Override                    public void onVisibilityChanged(boolean keyboardVisible) {                        if (keyboardVisible) {   // 显示键盘                                                   }                    }                });

更多相关文章

  1. Android 软键盘之 windowSoftInputMode 分析
  2. Android的RelativeLayout的view的layout_marginBottom不起作用
  3. android 聊天用RecyclerView获取键盘高度和消息自动显示在最底部
  4. Android 键盘布局总结
  5. Android开发EditText不自动弹出键盘
  6. 关于EditText 焦点 及 软键盘弹出引起不适 的几点
  7. Android中软键盘弹出时底部菜单上移问题
  8. Android中关于软键盘的一些设置
  9. Android EditText通过imeOptions属性控制软键盘的回车键变化:回车

随机推荐

  1. ListView的上拉弹簧、下拉弹簧,下拉弹簧时
  2. arcgis for android 开发的导航的部分 请
  3. Android 如何清空 Canvas 清屏只需三句
  4. Android:创建常见对话框以及使用对话框实
  5. 4.腾讯微博Android客户端开发——获取未
  6. 如何为sqlite操作构建更有效的设计
  7. 检测电池电量和充电状态
  8. 【Android端ANR卡顿检测】BlockCanary检
  9. GUVCview-Ubuntu下视频录像更简单
  10. Android中Intent详解(一)