返回首页 设为首页 加入收藏
政务公开
 日常检查
 法制宣传
 专项整治
当前位置:主页 > 政务公开 >
站内搜索:
政务公开  

Android50如何实现将布局的内容延伸到状态栏

2019-11-06 23:05:21

Android50如何实现将布局的内容延伸到状态栏 知乎 互联网 http://www.agri-history.com/images/defaultpic.gif 不请自来,我觉得有些回答说的不是很完整,局限比较多。这个问题昨天正好研究了下,我的拙见是:如果不需要支持4.4,建议使用statusBarColor如果需要支持4.4,简易4.4使用windowTranslucentStatus;5.x使用statusBarColor/colorPrimaryDark(本答案在5.1和5.0中的解决方式并不会影响软键盘和EditText的行为,4.4暂时无法测试,如有朋友发现bug请指出,我会在回答中注明,以免其他人一起掉坑里)下面说原因:TranslucentStatus在4.4和5.x上表现不同,4.4是一层渐变的遮罩层;5.x以上是一条半透明的遮罩层。看上去很兼容,其实不是,在我的回答为什么Xperia5.0对部分第三方app状态栏显示的是4.4的样式?-Allan的回答中,第一张图就暴露了这个问题——遮罩层颜色过于深,不符合MaterialDesign的推荐标准。ToolbarsandstatusbarsToolbarsandlargercolorblocksshouldusethe500coloroftheprimarycolorofyourapp.Thestatusbarshouldbethedarker700tintofyourprimarycolor.所以简易重写v21的style,只将windowTranslucnetStatus应用于v19。而v21使用statusBarColor自定义符合设计指南的颜色。如何做到v21上半透明的statusBar,即在statusbar后显示:1.getWindow().setStatusBarColor()设置半透明statusbar2.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE|View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);因为FLAT_LAYOUT_STABLE和FLAG_LAYOUT_FULLSCREEN是伴随translucentStatus自动设置的,v21上你需要手动设置(因为上述方法没用translucentStatus)。3.手动调整各个View的位置:可以动态或缺StatusBar的Height。也可以像我一样比较懒惰<android.support.v7.widget.Toolbarandroid:background="?attr/colorPrimary"android:minHeight="?attr/actionBarSize"android:elevation="@dimen/space_small"android:paddingTop="@dimen/status_bar_height/>wheredimens.xml<dimenname="status_bar_height">25dp</dimen>未来的AndroidM(感谢@张启指正)values-v23/dimens.xml<dimenname="status_bar_height">24dp</dimen>为啥那么麻烦问Google去。4.Enjoyv19:v21:这个问题比我们想象的都复杂,建议同时阅读@1ittlecup@张启的两个答案:Android5.0如何实现将布局的内容延伸到状态栏实?-1ittlecup的回答Android5.0如何实现将布局的内容延伸到状态栏实?-张启的回答综合使用需求选择合适的解决方法。

上一篇:霸王别姬中别字是动词是不是把妹中把的意思
下一篇:Lua元表有哪些让人感觉到精彩的应用
 
支队简介 | 网上投诉举报 | 批评建议 | 联系我们 | 设为主页 | 网站地图
版权所有:通辽市农牧业综合行政执法网 电 话:0475-8517243
蒙ICP备11002798号