android中怎么实现沉浸式状态栏

android中怎么实现沉浸式状态栏,第1张

stylesxml设置如下:
<style name="AppThemeAppBarOverlay" parent="ThemeOverlayAppCompatDarkActionBar"/>
<style name="AppThemePopupOverlay" parent="ThemeOverlayAppCompatLight"/>
<style name="AppThemeNoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="windowActionModeOverlay">true</item>
<item name="android:actionModeBackground">@drawable/context_menu</item>
</style>
<style name="TranslucentTheme" parent="AppThemeNoActionBar">
</style>
V21的stylesxml设置如下:
<style name="AppThemeAppBarOverlay" parent="ThemeOverlayAppCompatDarkActionBar" />
<style name="AppThemePopupOverlay" parent="ThemeOverlayAppCompatLight" />
<style name="AppThemeNoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:windowContentTransitions">true</item>
<item name="android:statusBarColor">@color/colorPrimary</item>
<item name="windowActionModeOverlay">true</item>
<item name="android:actionModeBackground">@drawable/context_menu</item>
</style>
<style name="TranslucentTheme" parent="AppThemeNoActionBar">
<item name="android:windowTranslucentStatus">false</item>
<item name="android:windowTranslucentNavigation">false</item>
</style>
再在要显示的toolbar里加上属性:
android:fitsSystemWindows="true"
主题的属性设置为:
<style name="TranslucentTheme" parent="AppThemeNoActionBar">

第一步 下载安装xposed框架
第二步 打开xposed框架然后安装激活,随后手机会自动重启
第三步 下载安装变色状态栏
第四步 在xposed模块设置中激活变色状态栏
第五步 在xposed的自定义设置中可以自己设置固定应用的状态栏颜色。
第六步 成功设置自动适应的状态栏后,只能对遵守谷歌应用的软件有效,像谷歌日历、谷歌Play市场

这个特性是andorid44支持的,最少要api19才可以使用。下面介绍一下使用的方法,非常得简单:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
superonCreate(savedInstanceState);
setContentView(Rlayoutactivity_main);
//透明状态栏
getWindow()addFlags(WindowManagerLayoutParamsFLAG_TRANSLUCENT_STATUS);
//透明导航栏
getWindow()addFlags(WindowManagerLayoutParamsFLAG_TRANSLUCENT_NAVIGATION);
}
}
//透明状态栏
getWindow()addFlags(WindowManagerLayoutParamsFLAG_TRANSLUCENT_STATUS);
//透明导航栏
getWindow()addFlags(WindowManagerLayoutParamsFLAG_TRANSLUCENT_NAVIGATION);
只要加入这两行代码,就可以实现沉浸式通知栏了。
给大家看看这个界面的布局:
<linearlayout android:background="#ffffff" android:cliptopadding="true" android:fitssystemwindows="true" android:layout_height="match_parent" android:layout_width="match_parent" android:orientation="vertical" tools:context="MainActivity" xmlns:android=">首先只有大于等于44版本支持这个半透明状态栏的效果,但是44和50的显示效果有一定的差异
因为本例使用了NavigationView,所以布局代码稍多,当然如果你不需要,可以自己进行筛减。
注意引入相关依赖:
compile 'comandroidsupport:appcompat-v7:2221'
compile 'comandroidsupport:support-v4:2221'
compile 'comandroidsupport:design:2220'
(一)colorsxml 和 stylesxml
首先我们定义几个颜色:
res/values/colorxml
<xml version="10" encoding="utf-8">
<resources>
<color name="primary">#FF03A9F4</color>
<color name="primary_dark">#FF0288D1</color>
<color name="status_bar_color">@color/primary_dark</color>
</resources>
下面定义几个stylesxml
注意文件夹的路径:
values/stylesxml
<resources>
<style name="BaseAppTheme" parent="ThemeAppCompatLightNoActionBar">
<!-- Customize your theme here -->
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorAccent">#FF4081</item>
</style>
<!-- Base application theme -->
<style name="AppTheme" parent="@style/BaseAppTheme">
</style>
</resources>
values-v19
<resources>
<style name="AppTheme" parent="@style/BaseAppTheme">
<item name="android:windowTranslucentStatus">true</item>
</style>
</resources>
1234567
ok,这个没撒说的。注意我们的主题是基于NoActionBar的,android:windowTranslucentStatus这个属性是v19开始引入的。
(二)布局文件
activity_mainxml
<androidsupportv4widgetDrawerLayout
xmlns:android=">

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13116343.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-30
下一篇 2023-05-30

发表评论

登录后才能评论

评论列表(0条)

保存