如何在使用 DrawerLayout 和 Fragments 时以编程方式使工具栏透明

How to make toolbar transparent programmatically while using a DrawerLayout and Fragments

我的问题是如何使 ActionBar 透明(以及状态栏)?

我在尝试使用 Android 上的 AppBarLayout 和工具栏时遇到问题。

我需要它,因为我想创建一个应用程序,它有一个主要的 Activity,其中包含一个 DrawerLayout 和许多主要是片段的屏幕。然后,在某些屏幕上 ActionBar 和 StatusBar 变得透明(同时 DrawerLayout 仍然有汉堡包按钮)。

我试过更改 AppBarLayout 和 Toolbar,但看起来很奇怪...看起来 ActionBar 上有一些奇怪的边距。

appBarLayout.setBackgroundColor(ContextCompat.getColor(this, android.R.color.transparent));
toolbar.setBackgroundColor(ContextCompat.getColor(this, android.R.color.transparent));

结果如下:

这是在将 color/changing 改回之前的样子:

当一些片段附加到主要内容时,关于如何在 ActionBar 上实现透明度的任何想法 Activity?

如果您想查看代码,这里是存储库:Sample Repo

好的...

我这里弄错了...

首先,您需要做的就是删除 content_main.xml 上的填充并将 appBarLayout 的高度设置为 0,代码将起作用。 (如果需要阴影,则需要将其设置回原始值)。

我更新了 repo 来解决这个问题,它现在应该可以工作了。

但是,还有另一种方法可以解决此问题,即使用具有自己 AppBarLayout/Toolbar 的片段,并在显示 Fragment 内部片段时隐藏和显示 MainActivity AppBarLayout。

我将在同一个存储库中创建一个分支来说明我的意思。

请answer/comment有更好的solutions/ideas。

Repo here.