美文网首页新名字
android开发中,监听软键盘的状态(收起或者打开)

android开发中,监听软键盘的状态(收起或者打开)

作者: granton_zhuang | 来源:发表于2015-10-03 17:28 被阅读5295次
    • description

    开发一个聊天界面,聊天的时候,软键盘会挤压消息列表,目的是在打开软键盘的时候,让消息列表的最新一条消息展示在用户面前

    • code
    final View view = $(R.id.chat_body);
    view.getViewTreeObserver().addOnGlobalLayoutListener(
      new ViewTreeObserver.OnGlobalLayoutListener() {
        @Override
        public void onGlobalLayout() {
          int heightDiff = view.getRootView().getHeight() - view.getHeight();
          // 大于100像素,是打开的情况
          if (heightDiff > 100) {
            // 如果已经打开软键盘,就不理会
            if (keyBoardShown) { return; }
            // do something when keyboard show,
            // i.e. listView or recyclerView scrolls to bottom
            keyBoardShown = true;
            return;
          }
          // 软键盘收起的情况
          keyBoardShown = false;
          // do something when keyboard hide
          }
        }
      );
    
    // 软键盘只影响输入框
    mainActivity.getWindow().setSoftInputMode(
      WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE
    );
    

    相关文章

      网友评论

        本文标题:android开发中,监听软键盘的状态(收起或者打开)

        本文链接:https://www.haomeiwen.com/subject/akegcttx.html