欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-04-19 23:09:56
...
  • 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
);