实现边缘到边缘后滚动时修复顶部应用栏颜色

问题描述 投票:0回答:1

将 top.inset 添加到顶部应用栏后,状态栏在滚动时会出现某种滞后并且会改变颜色。我该如何解决这个问题?

image1image2

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    enableEdgeToEdge(SystemBarStyle.auto(Color.TRANSPARENT, Color.TRANSPARENT))

    ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.toolbar)) { v, windowInsets ->
        val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
        v.updateLayoutParams<ViewGroup.MarginLayoutParams> {
            topMargin = insets.top
        }
        WindowInsetsCompat.CONSUMED
    }
}
<com.google.android.material.appbar.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:clipChildren="false"
    android:transitionName="appbar"
    tools:ignore="UnusedAttribute">

    <androidx.appcompat.widget.Toolbar
        android:id="@+id/toolbar"
        style="?toolbarStyle"
        android:layout_width="match_parent"
        android:layout_height="?actionBarSize"
        android:background="?colorPrimary"
        android:minHeight="?actionBarSize"
        app:titleTextAppearance="@style/TextAppearance.Frames.ToolbarTitle"
        app:layout_scrollFlags="scroll|enterAlways|snap"/>

</com.google.android.material.appbar.AppBarLayout>
kotlin appbar vertical-scrolling edge-to-edge
1个回答
0
投票

问题出在

android:layout_height="?actionBarSize"
androidx.appcompat.widget.Toolbar
我将其更改为
android:layout_height="wrap_content"
并且插图按其应有的方式工作

© www.soinside.com 2019 - 2024. All rights reserved.