zoukankan      html  css  js  c++  java
  • android 键盘遮挡 父布局上滚解决

     private void controlKeyboardLayout(final View root, final View scrollToView) {  
            root.getViewTreeObserver().addOnGlobalLayoutListener( new 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 > 200) {  
                        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);  
                    }  
                }  
            });  
        }  

    标红 数字可适当调节

    参考

    getLocationInWindow

    一个控件在其父窗口中的坐标位置

    getLocationOnScreen

    一个控件在其整个屏幕上的坐标位置

    http://blog.csdn.net/chengyingzhilian/article/details/7452082

    http://blog.csdn.net/fuuckwtu/article/details/6519689

       

  • 相关阅读:
    在Ajax中将数组转换成字符串(0517-am)
    Json,Ajax(0516)
    JQUERY的应用
    php 之 PDO数据访问抽象层(0513)
    php 之 房屋租赁练习(0509)
    MySQL 高级查询
    MySQL简单查询
    MySQL语句
    php 之 查询 投票练习(0508)
    linux查看java jdk jre安装路径和设置环境变量
  • 原文地址:https://www.cnblogs.com/newsouls/p/android.html
Copyright © 2011-2022 走看看