将 top.inset 添加到顶部应用栏后,状态栏在滚动时会出现某种滞后并且会改变颜色。我该如何解决这个问题?
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>
问题出在
android:layout_height="?actionBarSize"
中 androidx.appcompat.widget.Toolbar
我将其更改为 android:layout_height="wrap_content"
并且插图按其应有的方式工作