整个ActiviTy上推

来源:互联网 发布:附近分享 视频 软件 编辑:程序博客网 时间:2024/04/28 09:30

在一个界面中,会遇到EditText编辑框,会要求当EditText获取焦点的时候,整个布局向上推。

这是一个专门的工具类,只需要相应的布局即可。

public void controlKeyboardLayout(final View root, final View scrollToView) {    root.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {        @Override        public void onGlobalLayout() {            Rect rect = new Rect();            //获取root在窗体的可视区域            root.getWindowVisibleDisplayFrame(rect);            //获取root在窗体的不可视区域高度(被其他View遮挡的区域高度)            int rootInvisibleHeight = root.getRootView().getHeight() - rect.bottom;            //若不可视区域高度大于100,则键盘显示            if (rootInvisibleHeight > 100) {                int[] location = new int[2];                //获取scrollToView在窗体的坐标                scrollToView.getLocationInWindow(location);                //计算root滚动高度,使scrollToView在可见区域的底部                int srollHeight = (location[1] + scrollToView.getHeight()) - rect.bottom;                root.scrollTo(0, srollHeight);            } else {                //键盘隐藏                root.scrollTo(0, 0);            }        }    });}
上面中代码中填写的布局是整个xml文件中的跟布局。

0 0
原创粉丝点击