Android Material Design 之手机充分利用状态栏空间
充分利用状态栏空间
像这张照片一样看着舒服
想要让背景和系统状态栏充分融合
需要借助
android:fitsSystemWindows
这个属性来完成
将 android:fitsSystemWindows这个属性设置为true即可以了
不过要谨记必须要将图片布局结构(例如ImageView之类的)的所有父布局都设置上这个属性才可以
不过。。。难道就这么简单的吗?
你会发现结果不尽人。。
为啥那?
因为还必须在程序的主题中将状态栏颜色指定为透明 的才行
指定透明色的方法很简单
在主题中
将android:statusBarColor属性的值
指定为
@android:color/transparent就可以了
但问题在于android:statusBarColor这个属性
是从Android5.0开始才有的
之前的系统无法指定这个属性
系统差异的功能就开始了
android5.0之前的系统 |
android5.0之后的系统 |
我们在android5.0的基础上还需要对values/styles.xml文件进行修改 |
右击res目录->New->Diretory,创建一个values-21目录,然后右击values-21目录->New->Values resource file,创建一个styles.xml文件代码如下: |
<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> <style name="FruitActivityTheme" parent="AppTheme"> </style> </resources> 并且修改AndroidManifest.xml中的代码:<?xml version="1.0" encoding="utf-8"?> <resources> <style name="FruitActivityTheme" parent="AppTheme"> <item name="android:statusBarColor">@android:color/transparent</item> </style> </resources <activity android:name=".FruitActivity" android:theme="@style/FruitActivityTheme"> </activity> |
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="FruitActivityTheme" parent="AppTheme"> <item name="android:statusBarColor">@android:color/transparent</item> </style> </resources> |