Android导航栏和状态栏透明度与插图



在尝试为Android实现透明的导航和状态栏(边缘到边缘)时,我遵循了这个指南。我使用的是自定义顶部栏,这样我就可以在滚动时隐藏它。

<com.google.android.material.appbar.AppBarLayout
app:liftOnScroll="true"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/topAppBar"
app:layout_scrollFlags="scroll|enterAlways|snap"
app:title="Calorie Vault"
style="@style/Widget.MaterialComponents.Toolbar.Primary"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize" />
</com.google.android.material.appbar.AppBarLayout>

我添加WindowCompat.setDecorFitsSystemWindows(window, false)到我的MainActivity。然后,在我的Fragment中,我使用insets来推动UI,这样3个按钮的导航就不会覆盖一些可点击的界面。

ViewCompat.setOnApplyWindowInsetsListener(view) { view, windowInsets ->
val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
view.updatePadding(
top = insets.top, // this is for the tool bar inset
bottom = insets.bottom // lift up the bottom part of the UI above navigation bar
)
WindowInsetsCompat.CONSUMED
}

我的主题是这样的:

<style name="Theme.Calorie_vault" parent="Theme.MaterialComponents.Light.NoActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">@color/white</item>
<item name="colorPrimaryVariant">@color/light_teal</item>
<item name="colorOnPrimary">@color/black</item>
<!-- Secondary brand color. -->
<item name="colorSecondary">@color/light_teal</item>
<item name="colorSecondaryVariant">@color/light_teal</item>
<item name="colorOnSecondary">@color/black</item>
<!-- Status bar color. -->
<item name="android:statusBarColor" tools:targetApi="l">@android:color/transparent</item>
<item name="android:enforceStatusBarContrast">false</item>
<!-- Customize your theme here. -->
<item name="android:enforceNavigationBarContrast">false</item>
<item name="android:navigationBarColor">@android:color/transparent</item>
<item name="android:windowLightStatusBar">true</item>
</style>

但是我添加的那些插页不是透明的。这是他们的样子:屏幕截图。注意,手势导航栏的颜色不同。

如何去掉插图的颜色?

设置视图的背景为transparent

相关内容

  • 没有找到相关文章

最新更新