Android开发之android4.4沉浸式状态栏后toolbar和状态栏重复(重叠,覆盖)的bug
我们看下android4.4的手机沉浸式状态栏的效果图:
让所有的activity继承baseActivity,然后在baseactivity里面为重复的高度添加一个状态栏高度的view将toolbar顶下去即可。
如果你的activity没有继承baseActivity,那么你就只有在每个Activity的setContentView后面添加如下代码。
看不懂可以联系我。
@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);//应用竖直屏幕显示setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);setContentView(getLayoutResId());//判断api19版本,填充状态栏高度这个方法一定要在setContentView后调用if (android.os.Build.VERSION.SDK_INT == Build.VERSION_CODES.KITKAT) {//填充重叠的部分addMoreView();}initView(savedInstanceState);if (this instanceof IBaseView) {mPresenterImpl.onAttach((V) this);}}/*** 添加一个和状态栏一样高度的view将toolbar顶下去*/private void addMoreView() {//获取windowphone下的decorViewViewGroup decorView = (ViewGroup) getWindow().getDecorView();int count = decorView.getChildCount();//判断是否已经添加了statusBarViewif (count > 0 && decorView.getChildAt(count - 1) instanceof TextView) {decorView.getChildAt(count - 1).setBackgroundColor(Color.parseColor("#8B1C21"));} else {//新建一个和状态栏高宽的viewView statusView = createStatusBarView();decorView.addView(statusView);}ViewGroup rootView = (ViewGroup) ((ViewGroup) findViewById(android.R.id.content)).getChildAt(0);//rootview不会为状态栏留出状态栏空间ViewCompat.setFitsSystemWindows(rootView, true);rootView.setClipToPadding(true);}/*** 创建一个与状态看一样高度的view** @return 返回view*/private View createStatusBarView() {// 绘制一个和状态栏一样高的矩形TextView statusBarView = new TextView(this);LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, getStatusBarHeight());statusBarView.setLayoutParams(params);statusBarView.setBackgroundColor(Color.parseColor("#8B1C21"));return statusBarView;}/*** 拿到状态栏的高度** @return 返回高度*/private int getStatusBarHeight() {Class c;try {c = Class.forName("com.android.internal.R$dimen");Object obj = c.newInstance();Field field = c.getField("status_bar_height");int x = Integer.parseInt(field.get(obj).toString());LogUtils.e("打印高度:" + getResources().getDimensionPixelSize(x));return getResources().getDimensionPixelSize(x);} catch (Exception e) {e.printStackTrace();}return 0;}
在看下修复后android4.4手机的效果:
感谢原博主:https://www.jianshu.com/p/752f4551e134
Android开发之android4.4沉浸式状态栏后toolbar和状态栏重复(重叠,覆盖)的bug相关推荐
- Android开发之ViewPager+ActionBar+Fragment实现响应式可滑动Tab
今天我们要实现的这个效果呢,在Android的应用中十分地常见,我们可以看到下面两张图,无论是系统内置的联系人应用,还是AnyView的阅读器应用,我们总能找到这样的影子,当我们滑动屏幕时,Tab可以 ...
- android 工具栏沉浸 下拉,如何在Android应用中实现一个沉浸式状态栏效果
如何在Android应用中实现一个沉浸式状态栏效果 发布时间:2020-12-08 17:04:42 来源:亿速云 阅读:151 作者:Leah 这篇文章将为大家详细讲解有关如何在Android应用中 ...
- Android开发之旅:应用程序基础及组件
--成功属于耐得住寂寞的人,接下来几篇将讲述Android应用程序的原理及术语,可能会比较枯燥.如果能够静下心来看,相信成功将属于你. 引言 为了后面的例子做准备,本篇及接下来几篇将介绍Android ...
- Android开发之旅:android架构
引言 通过前面两篇: Android 开发之旅:环境搭建及HelloWorld Android 开发之旅:HelloWorld项目的目录结构 我 们对android有了个大致的了解,知道如何搭建and ...
- Android开发之无bug滑动删除源码(非第三方库)
Android开发之无bug滑动删除源码(非第三方库源码请在最后面自行下载) 1.我们先来看下效果图:上边是抽取出来的demo,下边是公司用到的项目 2.我们来看下如何调用(我们这里以listView ...
- android md5加密登录,Android开发之MD5加密
将字符串进行MD5加密,返回加密后的字符串 public static String encode(String password) { try { StringBuffer sb = new Str ...
- android开发之Intent.setFlags()_让Android点击通知栏信息后返回正在运行的程序
android开发之Intent.setFlags()_让Android点击通知栏信息后返回正在运行的程序 在应用里使用了后台服务,并且在通知栏推送了消息,希望点击这个消息回到activity, ...
- Android开发之TextView高级应用
Android开发之TextView高级应用 我们平时使用TextView往往让它作为一个显示文字的容器,但TextView的功能并不局限于此.以下就和大家分享一下TextView的一些使用技巧. A ...
- android之json解析优化,Android开发之json解析
目前正在尝试着写app,发现看懂代码和能写出来差距很大,最关键的是java基础比较的差,因为只会python,java基础只学习了一个礼拜就过了.感觉java写出来的代码不如python简单明了. 上 ...
最新文章
- NHibernate使用时,不能返回自己的异常的解决办法
- hql与sql的区别
- SpringMVC的数据响应-页面跳转-返回ModelAndView3(应用)
- java 文件分隔_java 实现大文件分隔成多个小文件
- 禁售苹果手机_苹果、华为供应商工厂突发火灾!浓烟冲天
- 从39个kaggle竞赛中总结出来的图像分割的Tips和Tricks
- 【深入理解编译】深入理解编译
- js中事件捕获和事件冒泡
- 生物聚集细胞生物化学反应的组织者Biomolecular condensates: organizers of cellular biochemistry
- 博客园博客转至个人网站博客声明
- 二十一天学通VC++之创建用户界面线程
- 复制粘贴之后出现问号怎么办_网页没办法复制粘贴?老司机传授这3招太赞了,全网任意免费复制...
- 如何创建和使用文档库 - [MOSS 2007应用日记]
- setup factory制作安装包卸载出错“Invalid start mode:archive filename”
- ZKT门禁机标准联接线(按键开关经过卡机)
- Wireshark之流量包分析+日志分析 (护网:蓝队)web安全 取证 分析黑客攻击流程(下篇)
- Opencv C++图像处理(全)
- BZOJ 4043 [Cerc2014] Vocabulary
- 用智能ABC关闭程序
- 错误 编码(此代码是错误的)
热门文章
- 基于verilog的洗衣机设计
- matlab目标支持包安装问题,配置系统目标文件
- MATLAB Simulink
- MathWorks 中国
- 改镜像_镜像制作大法
- php interbase,PHP: Firebird/InterBase - Manual
- animation停留_这些Animation动画技巧与细节你知道么
- 南京信息工程大学c语言实验十报告,南京信息工程大学2014年C语言程序设计实验内容(全部).doc...
- php5.3.3php5.4如何支持zend,PHP5.3、PHP5.4下安装ZendOptimizer或Zend Guard Loader的方法
- pyecharts geo_pyechartstableau可视化分析案例+分析思路
- 阅读王概凯老师架构漫谈系列总结
- 全国大型水库水情数据汇总2018