android - 如何在片段中隐藏工具栏并保留状态栏颜色?
问题描述
如何在片段中隐藏工具栏并保留状态栏颜色?
我正在尝试使用 onCreateView 中的这一行隐藏工具栏:
(activity as AppCompatActivity).supportActionBar?.hide()
它可以工作,但是状态栏颜色变为灰色。
抱歉,如果我问的是常见问题,但我找不到答案。
UPD
主题.xml
<style name="Theme.PP" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<item name="android:windowTranslucentStatus">true</item>
<!-- Primary brand color. -->
<item name="colorPrimary">@color/teal_500</item>
<item name="colorPrimaryVariant">@color/teal_700</item>
<item name="colorOnPrimary">@color/black</item>
<!-- Secondary brand color. -->
<item name="colorSecondary">@color/cyan_200</item>
<item name="colorSecondaryVariant">@color/cyan_700</item>
<item name="colorOnSecondary">@color/black</item>
<!-- Status bar color. -->
<item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
<!-- Customize your theme here. -->
</style>
<style name="Theme.PP.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<style name="Theme.PP.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="Theme.PP.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
在 main_activity.xml 中声明的工具栏
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@android:color/transparent"
app:navigationIcon="@drawable/ic_menu"
style="@style/Widget.MaterialComponents.AppBarLayout.PrimarySurface"
android:elevation="0dp"
/>
解决方案
问题在于windowTranslucentStatus
您的主题。
如果您阅读文档,它会说:
指示此窗口是否请求半透明状态栏的标志。
所以它不会采用您提供的颜色。您需要删除它才能生效colorPrimaryDark
, colorPrimaryVariant
或者其他状态栏颜色才能生效。
推荐阅读
- laravel - Laravel 中间件返回(尝试获取非对象的属性“标题”)错误
- sql - 如何获取每个不同类别的总数
- mysql - 像 mysqljs/mysql 这样的节点 mysql 驱动程序如何与 mysql 服务器通信?
- android - 如何在主要活动中调用插页式广告,然后在其他活动中调用它?
- reactjs - 升级 styled-componentsv4 时出现不变违规错误
- python - 在 JSON 中搜索变量,然后返回父标签的名称
- telegram - 如何使用 python 的 python-telegram-bot 库将 inlineKeyboardButton 替换为另一个 inlineKeyboardButton?
- c# - 游戏对象(聚光灯)未与 UI 画布 textField 交互/更改
- android - 相对布局内的滚动问题
- mongodb - 如何使用 spring-data-mongo 运行以下聚合查询?