public class AndroidBug54971Workaround {    // For more information, see https://code.google.com/p/android/issues/detail?id=5497    // To use this class, simply invoke assistActivity() on an Activity that already has its content view set.    public static void assistActivity(View viewObserving) {        new AndroidBug54971Workaround(viewObserving);    }    private View mViewObserved;//被监听的视图    private int usableHeightPrevious;//视图变化前的可用高度    private ViewGroup.LayoutParams frameLayoutParams;    private AndroidBug54971Workaround(View viewObserving) {        mViewObserved = viewObserving;        //给View添加全局的布局监听器        mViewObserved.getViewTreeObserver().addOnGlobalLayoutListener(new         ViewTreeObserver.OnGlobalLayoutListener() {            public void onGlobalLayout() {                resetLayoutByUsableHeight(computeUsableHeight());            }        });        frameLayoutParams = mViewObserved.getLayoutParams();    }    private void resetLayoutByUsableHeight(int usableHeightNow) {        //比较布局变化前后的View的可用高度        if (usableHeightNow != usableHeightPrevious) {            //如果两次高度不一致            //将当前的View的可用高度设置成View的实际高度            frameLayoutParams.height = usableHeightNow;            mViewObserved.requestLayout();//请求重新布局            usableHeightPrevious = usableHeightNow;        }    }    private int computeUsableHeight() {        Rect r = new Rect();        mViewObserved.getWindowVisibleDisplayFrame(r);        return (r.bottom - r.top);    }}

使用:

//setContentView之后AndroidBug54971Workaround.assistActivity(findViewById(android.R.id.content));

 

更多相关文章

  1. Android参数设置父布局集体宽高
  2. Android 四大组件,五大存储,六大布局
  3. android 布局随笔----用户登录界面
  4. android五种布局模式
  5. Android的布局管理器与java中的实现方式不同
  6. 获取android顶部状态栏高度的两种方式
  7. 布局管理器
  8. 如何实现Android 布局背景模糊化处理

随机推荐

  1. Android 不通过parent实现样式继承
  2. Android创建Native Binder Service
  3. Android(安卓)项目中文件夹作用(res文件
  4. Android(安卓)利用 APT 技术在编译期生成
  5. android 对话框AlertDialog
  6. Android(安卓)studio如何用真机调试,只需
  7. 动态实现隐藏标题栏
  8. Android 之 调用短信界面
  9. Android 时间滚动控件
  10. Android 文件打开方式