Android三句代码使用沉浸式状态栏

用过android手机的人都知道android使用app的时候屏幕上方的状态栏都是黑色的,就算不是黑色的都与正在打开的app颜色不同。有一种灰常不搭调的感觉。~

今天无意中看了一下关于沉浸式状态栏的资料~~作为强迫症重度患者怎能错过?

下面就开始使用沉浸式状态栏之旅:

代码未上图先行:

沉浸式:

\

非沉浸式:

\

嗯~虽然第二张图比较模糊,但是也可以想象第一张比较好看(~ ̄▽ ̄)~。

那么接下来要说的就是如何实现第一张图的那样的效果:

首先要说明的是以下方法只适合android4.4或以上的系统

android4.4也就是api19~所以我们在res文件夹下新建一个values-v19,然后再新建一个style.xml文件。

在style上写以下代码:

指定style为noactionbar而且半透明

 



 

然后运行程序可以看到,状态栏与app顶部颜色是一致的,但是如果布局文件的顶部写有其它内容的话会发现布局文件上的内容会与状态栏上的内容重合~~这肯定是不允许的。

有没有方法解决呢?

在使用了沉浸式状态栏的布局文件上写上以下两句话:

 

然后在要使用沉浸式状态栏的布局文件上写上两句代码:

 

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

就可以解决这个问题了~

 

但是在某些情况下会发现写上这两句代码之后,状态栏颜色会是白色或者其它颜色~这是因为写上这两句代码的地方的颜色是与状态栏颜色是一样的。

也就是说如果有一个LinearLayout的背景色是红色,那么使用了沉浸式状态栏的情况下,在这个linearLayout写上以上两句代码之后状态栏也会变成红色。

 

 

可以看到实际上就三句代码~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是Android沉浸状态栏代码示例: 首先,在你的AndroidManifest.xml文件中添加以下代码,以启用沉浸状态栏: ```xml <activity android:name=".MainActivity" android:theme="@style/Theme.AppCompat.Light.NoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> ``` 接下来,在你的styles.xml文件中添加以下代码,以定义沉浸状态栏的样: ```xml <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!--定义状态栏颜色--> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <!--隐藏ActionBar--> <item name="windowActionBar">false</item> <!--隐藏状态栏--> <item name="windowFullscreen">true</item> </style> ``` 最后,在你的MainActivity.java文件中添加以下代码,以使你的应用程序适应沉浸状态栏: ```java public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(ContextCompat.getColor(this, R.color.colorPrimaryDark)); } setContentView(R.layout.activity_main); } } ``` 在这个示例中,我们首先检查设备的API级别是否大于或等于LOLLIPOP(API 21)。如果是的话,我们就获取窗口对象并添加FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS标志,以使我们的应用程序适应沉浸状态栏。然后,我们设置状态栏的颜色为我们定义的颜色(在styles.xml文件中)。最后,我们设置我们的布局文件作为活动的内容视图。 这就是Android沉浸状态栏代码实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值