如何将半透明背景的Toolbar与Statusbar设为白色以显示背景
实现Toolbar和StatusBar白色背景并显示底层背景
静态配置(XML方式)
- 修改主题样式(
res/values/styles.xml),配置状态栏:<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar"> <!-- 状态栏设为白色,若要半透明白色,用#CCFFFFFF这类带透明度的色值 --> <item name="android:statusBarColor">@android:color/white</item> <!-- 开启状态栏深色图标,适配白色背景避免看不清 --> <item name="android:windowLightStatusBar">true</item> </style> - 配置Toolbar的背景:
<androidx.appcompat.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" <!-- 白色背景,半透明效果用#CCFFFFFF --> android:background="@android:color/white" />
动态设置(代码方式)
Java 代码:
// 配置状态栏 getWindow().setStatusBarColor(Color.parseColor("#FFFFFF")); // 白色,半透明用#CCFFFFFF getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); // 配置Toolbar Toolbar toolbar = findViewById(R.id.toolbar); toolbar.setBackgroundColor(Color.parseColor("#FFFFFF"));
Kotlin 代码:
// 配置状态栏 window.statusBarColor = Color.parseColor("#FFFFFF") window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR // 配置Toolbar val toolbar = findViewById<Toolbar>(R.id.toolbar) toolbar.setBackgroundColor(Color.parseColor("#FFFFFF"))
注意事项
- 若需要让底层背景透过Toolbar/状态栏显示,使用带透明度的白色值(如
#CCFFFFFF,其中CC代表75%不透明度,数值范围00-FF,值越小越透明)。 - 给页面根布局添加
android:fitsSystemWindows="true",避免页面内容被状态栏或Toolbar遮挡。
内容的提问来源于stack exchange,提问作者Matin Javid
相关产品推荐
相关产品推荐

