解决键盘遮挡注册或登录按钮

来源:互联网 发布:facebook 聊天软件 编辑:程序博客网 时间:2024/06/05 09:58

简单的几行代码解决键盘遮挡登录或注册按钮

  • 在项目开发中,这种情况是十分常见的,尤其是在登录界面,登录按钮经常被键盘挡住,导致用户输入完账号之后需要关闭键盘,然后再输入密码,然后再关掉键盘,点击登陆。十分繁琐,一旦用户输入错误,就要重复上述步骤。

  • 今天的这个小案例,就是一次性解决键盘遮挡问题,动态的计算,登陆按钮显示需要的高度,进而滚动布局,使之每次输入,键盘都无法遮挡输入框以及按钮。

来一张效果图:

image


在MainActivity加上这段代码就行了

/** *  获取main在窗体的可视区域 *  获取main在窗体的不可视区域高度 *  判断不可视区域高度 *      1、大于100:键盘显示  获取Scroll的窗体坐标 *                           算出main需要滚动的高度,使scroll显示。 *      2、小于100:键盘隐藏 * * @param main 根布局 * @param scroll 需要显示的最下方View */public void addLayoutListener(final View main, final View scroll) {    main.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {        @Override        public void onGlobalLayout() {            Rect rect = new Rect();            main.getWindowVisibleDisplayFrame(rect);            int mainInvisibleHeight = main.getRootView().getHeight() - rect.bottom;            if (mainInvisibleHeight > 100) {                int[] location = new int[2];                scroll.getLocationInWindow(location);                int srollHeight = (location[1] + scroll.getHeight()) - rect.bottom;                main.scrollTo(0, srollHeight);            } else {                main.scrollTo(0, 0);            }        }    });}


原创粉丝点击