slidingmenu阻碍沉浸式实现的原理讲解,demo下载地址在github
demo地址:https://github.com/yugu88/BaoDian
由于在网上找了很久没有可行的解决方案,都是提了一点点就不说了,所以我还是自己跟踪源码研究了一整个晚上,把众多的坑踏平,为了方便以后的人解决沉浸式传了demo。
实现过程有很多的坑,工程源代码已上传github。。。
由于slidingmenu的 jar包和library包 的包名和类名都不同,请在github下载源码slidingmenu,slidingmenu已停止更新,我下载的是最新版本,也可以从我的项目里拷走。。。
代码中有详细的注释……主要是view层级和事件拦截的问题。。slidingmenu包内源码已经优化。
请不要使用网上流传的jar包
@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);//这里使用的是slidingmenu的第三种用法。setContentView(R.layout.slidingmenu_main);View view=getLayoutInflater().inflate(R.layout.main_menu_login, null, false);// 管理activityActivityUtil.getInstance().addActivity(this);//初始化菜单initMenu(view);top=getTitleTop();}@Overrideprotected void onResume() {super.onResume();// 判断当前SDK版本号,如果是4.4以上,就是支持沉浸式状态栏的if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);((LinearLayout) findViewById(R.id.sou_s)).setPadding(0, top, 0, 0);}}private int getTitleTop() {Class<?> c=null;Object obj=null;Field field=null;int x=0, sbar=0;try {c=Class.forName("com.android.internal.R$dimen");obj=c.newInstance();field=c.getField("status_bar_height");x=Integer.parseInt(field.get(obj).toString());sbar=getResources().getDimensionPixelSize(x);// 状态栏高度} catch (Exception e1) {e1.printStackTrace();}Log.e("状态栏高度:", sbar + ":" + x);return sbar;}private void initMenu(View view) {mMenu=(SlidingMenu) findViewById(R.id.slidingmenulayout);mMenu.setMode(SlidingMenu.LEFT);// 设置触摸屏幕的模式mMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);//获取屏幕宽高DisplayMetrics dm=new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(dm);// 设置滑动菜单视图的宽度mMenu.setBehindWidth(dm.widthPixels * 4 / 5);// 设置渐入渐出效果的值mMenu.setFadeDegree(0.35f);mMenu.setMenu(view);initView(view);}
slidingmenu阻碍沉浸式实现的原理讲解,demo下载地址在github相关推荐
- 沉浸式互动投影的原理是什么?
随着技术发展和普及,互动灯光投影应用广泛,也比较普及,比较常见.常见的互动灯光投影主要分为这几类:地面互动投影,立面互动投影,以及灯光装置类互动.而随着技术的更迭,沉浸式光影互动投影渐渐成为网红. 沉 ...
- Android-推荐一个沉浸式状态栏开源库
自从android4.4开始,android手机状态栏再也不是一成黑的时代,之前叫做变色龙,miui6发布会把他叫做沉浸式,之后大家就自然而然的接受了沉浸式这个名称,其实实际应该叫做Transluce ...
- Android开发类似苹果iOS 7的沉浸式状态栏
1.什么是沉浸式状态栏? 沉浸式状态栏是指Activity的ActionBar的颜色和状态栏的颜色一样,两者连接起来了,看起来就像是一个整体,跟苹果的ios7以后的样式一样.如下图所示: (沉浸式状态 ...
- 仿网易云音乐新版详情页(沉浸式状态栏,上滑隐藏)
一.效果 二.需求 1.Activity内容扩展到状态栏 2.内容为详情头和列表组成,列表上滑详情头会跟着同步上移,最后详情头缩小为Actionbar大小 3.在列表上滑的时候,详情头背景图形逐渐变暗 ...
- android 4.4 以上沉浸式状态栏和沉浸式导航栏管理,一句代码轻松实现
ImmersionBar 项目地址:gyf-dev/ImmersionBar 简介:android 4.4 以上沉浸式状态栏和沉浸式导航栏管理,一句代码轻松实现,以及对 bar 的其他设置,详见 R ...
- Android 沉浸式状态栏及悬浮效果
转载请注明出处 http://blog.csdn.net/xiaoyuan511 一.概述 现在大多数的电商APP的详情页长得几乎都差不多,几乎都是上面一个商品的图片,当你滑动的时候,会有Tab悬浮在 ...
- element-UI响应式(布局原理)讲解 - 贴文篇
element-UI响应式(原理)- 讲解 element-UI官方说明:响应式布局 参照了 Bootstrap 的 响应式设计,预设了五个响应尺寸:xs.sm.md.lg 和 xl. Element ...
- Android布局延伸状态栏,Android沉浸式全屏讲解(状态栏、导航栏处理)
Android应用中经常会有一些要求全屏显隐状态栏导航栏的需求.通过全屏沉浸式的处理可以让应用达到更好的显示效果.下面系统的讲解一下有关全屏,隐藏状态栏导航栏,沉浸式的知识. 在Android4.1之 ...
- android 沉浸式菜单栏,Android沉浸式全屏讲解(状态栏、导航栏处理)
Android应用中经常会有一些要求全屏显隐状态栏导航栏的需求.通过全屏沉浸式的处理可以让应用达到更好的显示效果.下面系统的讲解一下有关全屏,隐藏状态栏导航栏,沉浸式的知识. 在Android4.1之 ...
最新文章
- 快讯 | 首期“医工结合系列研讨会”汇聚清华力量,共促医工融合发展
- Cubieboard ARM 集群
- 选择排序——一般选择排序,堆排序
- 实战Kaggle比赛(1):树叶分类
- VMware下Linux虚拟机无法连接网络
- 编程竞赛控制系统(PC2)使用说明书
- 3d建模电脑配置要求_专业3d动画建模需要什么配置 运行Blender的电脑配置推荐
- quicksearch连接oracle,dos命令下连接oracle数据库表
- lintcode_189. 丢失的第一个正整数
- insert into 语句 mysql_sql insert into 语句
- 计算机控制技术(本科生专业选修课) 期末考试总结
- sh: warning: setlocale: LC_ALL: cannot change locale (zh_CN.GB18030)
- python获取北京时间
- edg击败we视频_lpl2018春季赛2月4日WEvsEDG比赛视频:EDG2:1击败WE
- 基于STM32的多功能门禁系统(AS608指纹识别、密码解锁、刷卡解锁)
- 使用jq简单实现导航栏切换对应展现内容
- 怎么用j-link+j-flash烧写MM32
- 2021-2-26编程语言知识点整理
- 计算机专业学历简况,刘觉民
- 辛巴学院-Unity-剑英的c#提高篇(一)主循环