Android一体式(沉浸式)状态栏的实现
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Android一体式(沉浸式)状态栏的实现,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1760字,纯文字阅读大概需要3分钟。
内容图文
注:公司开发任务适配是在4.4版本之上进行,所以此适配仅在4.4之上进行测试。
1、主要使用了第三方的开源项目SystemBarTint,github:https://github.com/jgilfelt/SystemBarTint
2、根据SystemBarTint自带sample进行研究,主要步骤如下:
- 在Activity中加入如下代码:
public class MainActivity extends BaseActivity { @Override publicvoid setContentView() { setContentView(R.layout.activity_main); // 沉浸式状态栏setTranslucentStatus(); }
} /** * 为xml 的根布局添加android:fitsSystemWindows=”true” 属性<br/> */protectedvoid setTranslucentStatus() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { setTranslucentStatus(true); } SystemBarTintManager tintManager = new SystemBarTintManager(this); tintManager.setStatusBarTintEnabled(true); tintManager.setStatusBarTintResource(R.color.statusbar_bg);// 通知栏所需颜色 } @TargetApi(19) privatevoid setTranslucentStatus(boolean on) { Window win = getWindow(); WindowManager.LayoutParams winParams = win.getAttributes(); finalint bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS; if (on) { winParams.flags |= bits; } else { winParams.flags &= ~bits; } win.setAttributes(winParams); }
注:有些资料说setTranslucentStatus()方法需要放在setConentView()之后,实际上没有影响。
2. 在MainActivity的根布局中添加:
android:fitsSystemWindows="true"
3. 如果我们在布局中间加入一个自定义TextView控件,并且设置的背景色和setTranslucentStatus()方法中的color一样的话,我们运行会发现效果如下图:
其中,在statusbar与textview中间会有一个空白,这个空白是actionbar的留白,所以,如果使用自带titlebar的话,要取消actionbar的显示;如果使用actionbar的话,要将actionbar的背景设置为相同色。
public class MainActivity { @Override public void setContentView() { noTitleBar(); setContentView(R.layout.activity_main); // 沉浸式状态栏 setTranslucentStatus(); } /** * 不显示标题栏 */ protected void noTitleBar() { this .requestWindowFeature(Window.FEATURE_NO_TITLE); } }
效果如下:
4. 由于github上面的代码是基于gradle的,下面放出基于eclipse的版本源码。
原文:http://www.cnblogs.com/weizhxa/p/5663568.html
内容总结
以上是互联网集市为您收集整理的Android一体式(沉浸式)状态栏的实现全部内容,希望文章能够帮你解决Android一体式(沉浸式)状态栏的实现所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。