1.用父View使用login.getViewTreeObserver().addOnGlobalLayoutListener()布局完成時(shí)回調(diào)里計(jì)算;
2.Rect? rect? =? new? Rect();
login.getWindowVisibleDisplayFrame(rect);用父View獲取root在窗體的可視區(qū)域
3.int rootInvisibleHeight=
login.getRootView().getHeight()-rect.bottom;
用父View獲取root在窗體的不可視區(qū)域高度(被其他View遮擋的區(qū)域高度);
4.if(rootInvisibleHeight>100){
int[] location = new int[2];
login_btn.getLocationInWindow(location);獲取scrollToView在窗體的坐標(biāo)
int srollHeight =(location[1]+login_btn.getHeight())+login.getScrollY()-rect.bottom;計(jì)算root滾動(dòng)高度尉辑,使scrollToView在可見(jiàn)區(qū)域
if(srollHeight>50){
login.scrollTo(0,srollHeight);
}else{
login.scrollTo(0,0);
}
}else{
login.scrollTo(0,0);鍵盤隱藏
}