• 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

       

  • 相关阅读:
    Shortest Paths
    Minimum Spanning Trees
    Programming Assignment 1: WordNet
    Directed Graphs
    内连接
    数据中台文档--参考
    ORACLE触发器字段触发
    DTS
    oracle删除归档日志
    OGG 分区表
  • 原文地址:https://www.cnblogs.com/newsouls/p/android.html
Copyright © 2020-2023  润新知