在网上找了许多关于状态栏设置透明的方法,总是有这样那样的问题,最后自己瞎猫碰上死耗子,解决了,
不过这些也归功于网上开放的资源及众多博客。下面记录下透明方法,开发工具AndroidStudio
首先要在资源目录中建立一个values-v19目录,该目录中建立styles.xml文件
文件内容
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="colorControlNormal">@color/colorLunarTitle</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
</style>
</resources>
几个color开头的项目是主题颜色设置部分,可以不理会,实现透明功能的是最后两项。
然后在Java代码中找到你想进行状态栏透明的页面,我的页面是继承自AppCompatActivity类
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 设置透明状态栏
supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
ViewGroup contentFrameLayout = (ViewGroup) findViewById(Window.ID_ANDROID_CONTENT);
if (contentFrameLayout != null) {
View parentView = contentFrameLayout.getChildAt(0);
if (parentView != null && Build.VERSION.SDK_INT >= 14) {
parentView.setFitsSystemWindows(true);
}
}
setContentView(R.layout.activity_main);
}重写onCreate方法,先进行透明栏设置,然后再设置View,注意顺序。。。
到这里运行项目其实就已经透明化状态栏了,状态栏的颜色与页面的工具栏颜色一致了,但是会发现整个页面是上移的。。。
这里网上解决的办法就千奇百怪了,我都看不懂。。。然后就自己想吧,还别说,我想把工具栏变高,然后再Padding Top这个高度不就OK了,结果试了试,还不错
竟然成功了。。。
这是发现页面里面的View错位了,或者说工具栏盖住下面的View了,这时就需要在View的布局文件进行设置了
在页面的布局文件中的根节点中添加android:fitsSystemWindows="true"属性即可,如果不错位就不要添加这个属性了,添加了反而会起反作用。

本文介绍了一种在Android应用中实现状态栏透明效果的方法。通过在values-v19/styles.xml中配置特定样式,并在Java代码中调整页面设置,可以轻松实现状态栏的透明显示。此外,还提供了解决页面上移问题的方案。
1万+

被折叠的 条评论
为什么被折叠?



