在 androidX 工具栏上隐藏阴影

Hide Shadow on androidX Toolbar

我想隐藏 ActionBar 下方的阴影,使 ActionBar 看起来平坦。 ActionBar与布局之间不能有线条、阴影、边框。

约束

android.support.v7.widget.Toolbar 上对我有用的东西在 androidx.appcompat.widget.Toolbar 上对我不起作用。

我尝试了几种方法,例如

到目前为止,我没有任何效果。

唯一对我有用的是在代码中设置 AppBarLayout 的高度。不幸的是,在 Fragment 中,您需要知道自己在哪个 Activity 中,并且需要访问它的 AppBarLayout,这会使代码变得丑陋。将来应该在 SupportActionbar 中有一个函数,比如 show/hideShadow() 左右。

长话短说。我对hide/show的影子做了什么ActionBar

在你的Activity

appBarLayout.elevation = 0f

在你的片段中

if (requireActivity is MyActivity) {
    (activity as MyActivity).appBarLayout.elevation = 0f
}

请记住,如果您更改 Fragment 中的 ActionBar,则由同一 Activity 托管的所有其他 Fragment 也会看到更改。

另一个问题是在 Espresso 中测试您的片段将在没有 AppBarLayout 的 EmptyActivity 中启动。但至少使用上面的代码你的应用程序不会崩溃。