Android沉浸式状态栏的简单实现

Android沉浸式状态栏的简单实现


做为一个小菜鸟,开发过程当中遇到不会的问题,老是去网上找各类demo。因为本人比较懒,因此通常没有作笔记的习惯,但是每次遇到相同问题时都要去找博客,感受很麻烦,因此就抽空闲时间把本身开发过程当中遇到的一些问题和你们分享一下,既能够记笔记又能帮助小伙伴们,这不是一箭双雕吗O(∩_∩)O哈哈~。本人开发时间不太长,可能考虑问题不是太全面,但愿各位大神们给出合理的意见啊偷笑偷笑java

因为最近须要作沉浸式状态栏,找了好多种方法感受都太罗嗦,看半天都不知道是干什么的(多是个人能力不够^_^),因而就结合网上提供的方法和我本身的想法作了一个,结废话很少说,直接上效果android



经过效果图,大牛们可能已经看出我是怎么作的了,没错就是用一个控件填充到状态栏处,这样作处理起来不是太麻烦,只须要使用一个ImageView、TextView或者一块layout来填充你想要的状态栏颜色,这里我用的是系统的粉红色。注意:须要在要填充的控件里加上最关键的两行代码:ide

android:clipToPadding="true"
android:fitsSystemWindows="true"
布局

这两行代码做用是防止下面的布局跑到状态栏,就是这地儿哥们占了,大家爱哪玩哪玩,要否则下面的布局跑上来多不和谐。ui


<TextView android:id="@+id/text" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/colorAccent" android:clipToPadding="true" android:fitsSystemWindows="true" />
activity中的代码:

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView textView = (TextView) findViewById(R.id.text); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { // 设置状态栏透明 getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); // 得到状态栏高度 int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android"); int statusBarHeight = getResources().getDimensionPixelSize(resourceId); //将textview的高度改成和状态栏的高度 textView.setHeight(statusBarHeight); } }

虽然看起来很挫,可是用起来仍是很好用的,能够填充一块布局或者整个填充,若是你只想在某一块实现沉侵式状态栏,只需在要实现的界面填充,实用性仍是比较强的O(∩_∩)O~,若是你们有好的建议能够再下方留言,欢迎你们多提意见。