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

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


作为一个小菜鸟,开发过程中遇到不会的问题,总是去网上找各种demo。由于本人比较懒,所以一般没有做笔记的习惯,可是每次遇到相同问题时都要去找博客,感觉很麻烦,所以就抽空闲时间把自己开发过程中遇到的一些问题和大家分享一下,既可以记笔记又能帮助小伙伴们,这不是一举两得吗O(∩_∩)O哈哈~。本人开发时间不太长,可能考虑问题不是太全面,希望各位大神们给出合理的意见啊偷笑偷笑

由于最近需要做沉浸式状态栏,找了好多种方法感觉都太罗嗦,看半天都不知道是干什么的(可能是我的能力不够^_^),于是就结合网上提供的方法和我自己的想法做了一个,结废话不多说,直接上效果



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

android:clipToPadding="true"
android:fitsSystemWindows="true"

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


<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~,如果大家有好的建议可以再下方留言,欢迎大家多提意见。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值