📅  最后修改于: 2023-12-03 15:08:24.617000             🧑  作者: Mango
在Android中,我们经常需要在布局中嵌套Toolbar或者StatusBar,并且希望内容区域不受它们的影响,例如不被遮挡或压缩。在这种情况下,我们可以使用dodgeInsetEdges来移开视图。
dodgeInsetEdges是一个布局属性,可以用来在给定的边缘上将视图向外移开。它的值可以是top、bottom、left、right或者all。
下面是一个示例布局,其中包含一个Toolbar和一个TextView,我们希望TextView不被Toolbar所遮挡。
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:title="Toolbar"
app:layout_constraintTop_toTopOf="parent"
/>
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Content"
app:layout_constraintTop_toBottomOf="@id/toolbar"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_dodgeInsetEdges="top" />
</androidx.constraintlayout.widget.ConstraintLayout>
在上面的布局中,我们使用了ConstraitLayout作为父布局,Toolbar作为子布局中的一个元素,并且将TextView定位在Toolbar下面。我们还将TextView的layout_dodgeInsetEdges属性设置为top,这意味着TextView应该向下移动以避免与Toolbar重叠。
注意,我们还需要为Toolbar设置app:layout_constraintTop_toTopOf="parent",这样Toolbar才会从屏幕顶部开始布局。
其他可选的值包括bottom、left、right和all,它们可以用于将视图移开底部、左侧、右侧或所有边缘。例如,要将TextView移开底部,可以将layout_dodgeInsetEdges设置为bottom。
这就是如何使用Android中的dodgeInsetEdges移开视图的介绍。感谢阅读!