获取软件盘,状态栏高度

 relativeLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener(){

            @Override
            public void onGlobalLayout(){

                Rect r = new Rect();
                relativeLayout.getWindowVisibleDisplayFrame(r);

                int screenHeight = relativeLayout.getRootView().getHeight();
                int heightDifference = screenHeight - (r.bottom - r.top);
                Log.e("Keyboard Size",""+ heightDifference);
                if(height==0){
                    height=heightDifference;//状态栏高度
                }

                if(heightDifference>100){
                    LinearLayout.LayoutParams layoutParams= (LinearLayout.LayoutParams) relativeLayout.getLayoutParams();
                    layoutParams.bottomMargin=heightDifference-height;  //软键盘高度
                    relativeLayout.setLayoutParams(layoutParams);
                }

                //boolean visible = heightDiff > screenHeight / 3;
            }
        });

 

posted @ 2016-08-13 16:24  千古丶风流人物  阅读(182)  评论(0编辑  收藏  举报