首页 > 系统 > Android > 正文

关于Android主题splash全屏和主页面的沉浸式状态栏

2019-11-06 10:00:04
字体:
来源:转载
供稿:网友

最近做项目需要经常修改Android主题,对于每个Activity都进行自定义主题设置,下面讲一下对于主题的一些使用心得。 1. 全屏显示activity 由于studio中继承AppCompatActivity,所以在setContentView方法前才用getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);这种方法可能不会起作用,需要自己在主题中进行设置。

<style name="APPTheme2" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="android:background">@drawable/transparent</item> //设置全屏的属性 <item name="android:windowFullscreen">true</item> <!--<item name="android:windowNoTitle">true</item> <item name="android:windowIsTranslucent">true</item>--> <item name="android:windowContentOverlay">@android:color/transparent</item> <item name="android:windowBackground">@color/background</item> //设置沉浸式状态栏的colorPRimaryDark属性,SDK19之后起作用 <!--<item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item>--> <item name="colorAccent">@color/colorAccent</item> </style>

全屏显示会隐藏标题和状态栏。如果想隐藏状态栏使用一个单独的代码

WindowManager.LayoutParams localLayoutParams = getWindow().getAttributes(); localLayoutParams.flags = (WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | localLayoutParams.flags);

这个方法可以隐藏状态栏。这些代码放在setContentView之前 2、自定义主题 利用style标签,自定义name,选择继承一个parent,就会有parent的所有属性,和java中的继承一致。子类可以覆盖重写父类的属性,也可以拥有特有的属性。

<style name="AppTheme.My" parent="AppTheme"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/transparent</item> </style> <style name="AppTheme.My2" parent="AppTheme"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/black</item> </style>
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表