zoukankan      html  css  js  c++  java
  • Android 之 沉浸式状态栏及顶部状态栏背景色设置

      现在很多应用都引用了沉浸式状态栏,如QQ,效果下图:

      

      效果很酷炫,其实设置也很简单。但是,需要注意的是,这种效果只能在API19以及以上版本中才能够做到。

    方法一:

           首先,如果想让界面Activity中实现这种效果,在 setContentView(R.layout.XX); 方法之前加入以下代码: 

          if(VERSION.SDK_INT>= VERSION_CODES.KITKAT) {
                //透明状态栏
                getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
                //透明导航栏
                getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
            }

      注意:VERSION_CODES.KITKAT 就是API19的名称,只有手机系统 SDK 版本大于19,才执行判断中的代码,才能显示沉浸状态栏的效果。

      若要去掉默认标题栏,继承自Activity的如下:在setContentView(R.layout.XX);之前加如代码:requestWindowFeature(Window.FEATURE_NO_TITLE);继承自 AppCompatActivity 的需要更换 android:theme="@style/AppTheme.NoActionBar" 主题。

      其次,API 改为 19 以上,Layout 根标签添加背景颜色。

      注意:

      此种方式设置,第二层标签为内容所在,内容会从屏幕最顶端开始展现,这样若最顶端有内容状态栏会造成遮挡,若要从状态栏下开始展现内容,需在布局文件的根标签中添加

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

    方法二:

      在res目录下面新建一个values-v19文件夹,下面新建一个styles.xml文件,内容如下

      

      当然这样还得在布局文件的根标签中添加

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

      如果不添加这段代码的话,布局就会靠着屏幕顶部,造成遮挡。

      

      在AndroidManifest.xml 下的application 标签引用values-v19文件夹的styles.xml

      

  • 相关阅读:
    215. Kth Largest Element in an Array
    214. Shortest Palindrome
    213. House Robber II
    212. Word Search II
    210 Course ScheduleII
    209. Minimum Size Subarray Sum
    208. Implement Trie (Prefix Tree)
    207. Course Schedule
    206. Reverse Linked List
    sql 开发经验
  • 原文地址:https://www.cnblogs.com/xinaixia/p/7659326.html
Copyright © 2011-2022 走看看