📜  如何使用Android中的dodgeInsetEdges移开视图?(1)

📅  最后修改于: 2023-12-03 15:08:24.617000             🧑  作者: Mango

如何使用Android中的dodgeInsetEdges移开视图?

在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移开视图的介绍。感谢阅读!