如何设置 ConstraintLayout End of Top Bottom Sheet

Posted

技术标签:

【中文标题】如何设置 ConstraintLayout End of Top Bottom Sheet【英文标题】:How to set ConstraintLayout End of Top Bottom Sheet 【发布时间】:2021-10-31 18:16:18 【问题描述】:

如何设置botton group layout_constraintEnd_toTopOf Bottom Sheet 当向上或向下滑动按钮组时,请跟随

我尝试了几种方法,但仍然无法像下面的红色箭头一样。

下面是主要的xml 我在片段和线性布局之间使用了 CoordinatorLayout

<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:mapbox="http://schemas.android.com/apk/res-auto"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/coordinatorLayout"
    android:layout_
    android:layout_>

    <FrameLayout
        android:layout_
        android:layout_
        android:orientation="vertical">

        <com.mapbox.mapboxsdk.maps.MapView
            android:id="@+id/mapView"
            android:layout_
            android:layout_
            mapbox:mapbox_cameraTargetLat="40.73581"
            mapbox:mapbox_cameraTargetLng="-73.99155"
            mapbox:mapbox_cameraZoom="11"/>

    </FrameLayout>


    <include layout="@layout/bottom_sheet"/>

    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/layout_options_inside"
        android:layout_
        android:layout_
        android:orientation="vertical">


        <com.google.android.material.button.MaterialButtonToggleGroup
            android:id="@+id/toggleButtonGroup2"
            android:layout_
            android:layout_
            android:background="@color/transparent_white"
            android:orientation="vertical"
            app:singleSelection="true"
            android:layout_marginEnd="16dp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            >


            <Button
                android:id="@+id/btnLeft"
                style="@style/ToggleButtonWithIconOnly"
                app:icon="@drawable/ic_outline_near_me_24"
                android:layout_
                android:layout_
                tools:layout_editor_absoluteX="168dp"
                tools:layout_editor_absoluteY="153dp" />

            <Button
                android:id="@+id/btnCenter"
                style="@style/ToggleButtonWithIconOnly"
                app:icon="@drawable/ic_baseline_search_24"
                android:layout_
                android:layout_
                tools:layout_editor_absoluteX="173dp"
                tools:layout_editor_absoluteY="251dp" />

        </com.google.android.material.button.MaterialButtonToggleGroup>



    </androidx.constraintlayout.widget.ConstraintLayout>




</androidx.coordinatorlayout.widget.CoordinatorLayout>

下面是我的包含底部工作表 xml 布局 我尝试在 LinearLayout 中添加 ConstraintLayout 布局,但我不能使用底页

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:id="@+id/bottomSheet"
    app:layout_behavior="@string/bottom_sheet_behavior"
    app:behavior_peekHeight="?actionBarSize"
    android:layout_
    android:layout_>


    <RelativeLayout
        android:layout_
        android:layout_
        android:background="@drawable/rounded_bottomsheet"
        android:paddingEnd="8dp"
        android:paddingStart="8dp">

        <FrameLayout
            android:layout_
            android:layout_>

            <ImageView
                android:layout_
                android:layout_
                android:scaleType="centerCrop"
                android:src="@drawable/ic_baseline_remove_24"
                android:layout_gravity="center|top"
                />
        </FrameLayout>

    </RelativeLayout>

</LinearLayout>

感谢大家的回答

【问题讨论】:

【参考方案1】:

尝试将切换组锚定到底部工作表

    app:layout_anchor="@id/bottom_sheet"
    app:layout_anchorGravity="end"

【讨论】:

不工作它堆叠在 CoordinatorLayout

以上是关于如何设置 ConstraintLayout End of Top Bottom Sheet的主要内容,如果未能解决你的问题,请参考以下文章

ConstraintLayout:如何以编程方式将屏幕划分为屏幕高度的两个相等部分

ConstraintLayout:如何展平此布局?

如何在不使用 ConstraintLayout 中的边距属性的情况下相对于屏幕宽度设置 2 个视图之间的空间

掌握ConstraintLayout按比例设置视图大小

如何在 ConstraintLayout 中设置视图的绝对位置

在 ConstraintLayout 中滚动 RecyclerView 时如何折叠工具栏?