从品牌网站建设到网络营销策划,从策略到执行的一站式服务
我的上一篇文章:设置DialogFragment全屏显示 可以设置对话框的内容全屏显示,但是存在在某些机型上顶部的View被状态栏遮住的问题。经过测试,发现了一种解决办法,在DialogFragment的onCreateView()中添加一个布局监听器:
站在用户的角度思考问题,与客户深入沟通,找到相山网站设计与相山网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站建设、做网站、企业官网、英文网站、手机端网站、网站推广、主机域名、虚拟空间、企业邮箱。业务覆盖相山地区。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
...
//此处rootView是对话框的顶层View
rootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
int[] location = new int[2];
rootView.getLocationOnScreen(location);
int y = location[1];
if (y == 0) {
//此处的topMarginView是被状态栏覆盖的View
ViewGroup.MarginLayoutParams params
= (ViewGroup.MarginLayoutParams)topMarginView.getLayoutParams();
params.topMargin += BarUtils.getStatusBarHeight();
topMarginView.setLayoutParams(params);
rootView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
}
}
});
}
这种方法是通过监听对话框内容布局顶层View在屏幕中的位置来解决的,如果顶层View在屏幕中的y位置为0,则表示其已经被状态栏所遮住,然后将被遮住的View向下移动状态栏的高度即可。
这种方式显然不够优雅,如果读者能有更好的方法,欢迎留言。
本文地址,如有更多疑问,请参考我的其它Android相关博客:我的博客地址
咨询相关问题或预约面谈,可以通过以下方式与我们联系
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询400-028-6601
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图