FragmentContainerView, который не сжимает внутри себя Fragment под свои размеры

Всем привет! Кто-нибудь знает, как сделать, чтобы FragmentContainerView не сжимал Fragment под свои размеры, а отображал только некоторую часть этого Fragment?

Конкретнее: У меня есть bottomSheet:

<?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"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/bottom_sheet"
    android:layout_width="match_parent"
    android:layout_marginStart="@dimen/bottomsheet_layout_side_margin"
    android:layout_marginEnd="@dimen/bottomsheet_layout_side_margin"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:orientation="vertical"
    app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior"
    app:behavior_hideable="false"
    android:background="@drawable/bottom_sheet_bg"
    app:behavior_peekHeight="30dp">

    <ImageView
        android:id="@+id/iv_drag_handle"
        android:layout_width="match_parent"
        android:layout_height="30dp"
        android:layout_weight="1"
        android:background="@drawable/bottom_sheet_bg"
        android:paddingTop="10dp"
        android:paddingBottom="10dp"
        app:srcCompat="@drawable/ic_drag_handle_horizontal" />

    <androidx.fragment.app.FragmentContainerView
        android:id="@+id/bottom_sheet_content"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="0dp"
        android:layout_marginEnd="0dp"
        android:paddingTop="0dp" >

    </androidx.fragment.app.FragmentContainerView>


</LinearLayout>

Этот bottomSheet увеличивается и сжимается в ширину посредством изменения margin'ов:

введите сюда описание изображения

введите сюда описание изображения

Разметка фрагмента, изображенного на 2 картинке:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@android:color/white"
    android:transitionName="@string/transitionName"
    app:layout_constraintBaseline_toBaselineOf="parent">

    <Button
        android:id="@+id/btn_abort_order"
        style="@style/ButtonStyle.BottomSheetButton"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="24dp"
        android:text="@string/reset_order"
        android:theme="@style/RedButtonTheme"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/tv_car_color" />

    <TextView
        android:id="@+id/tv_label_waiting_time"
        style="@style/TextViewLabelStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:text="@string/label_waiting_time"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="@+id/imageView"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/tv_label_station_name"
        style="@style/TextViewLabelStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="15dp"
        android:text="@string/label_driver_meet_point"
        app:layout_constraintEnd_toEndOf="@+id/btn_abort_order"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="@+id/tv_label_driver"
        app:layout_constraintTop_toBottomOf="@+id/tv_waiting_time" />

    <TextView
        android:id="@+id/tv_label_driver"
        style="@style/TextViewLabelStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="15dp"
        android:text="@string/label_driver_name"
        app:layout_constraintEnd_toStartOf="@+id/tv_driver_name"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintHorizontal_chainStyle="packed"
        app:layout_constraintStart_toStartOf="@+id/tv_label_car"
        app:layout_constraintTop_toBottomOf="@+id/tv_meet_point" />

    <TextView
        android:id="@+id/tv_label_car"
        style="@style/TextViewLabelStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:text="@string/label_car_type"
        app:layout_constraintEnd_toStartOf="@+id/tv_car_type"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintHorizontal_chainStyle="packed"
        app:layout_constraintStart_toStartOf="@+id/tv_label_car_number"
        app:layout_constraintTop_toBottomOf="@+id/tv_driver_name" />

    <TextView
        android:id="@+id/tv_label_car_number"
        style="@style/TextViewLabelStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:text="@string/label_car_number"
        app:layout_constraintEnd_toStartOf="@+id/tv_car_number"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintHorizontal_chainStyle="packed"
        app:layout_constraintStart_toStartOf="@+id/tv_label_car_color"
        app:layout_constraintTop_toBottomOf="@+id/tv_car_type" />

    <TextView
        android:id="@+id/tv_label_car_color"
        style="@style/TextViewLabelStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:text="@string/label_car_color"
        app:layout_constraintEnd_toStartOf="@+id/tv_car_color"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintHorizontal_chainStyle="packed"
        app:layout_constraintStart_toStartOf="@+id/btn_abort_order"
        app:layout_constraintTop_toBottomOf="@+id/tv_car_number" />

    <TextView
        android:id="@+id/tv_car_color"
        style="@style/DriverDataBoldBottomSheetText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="7dp"
        android:maxWidth="310dp"
        android:text="Синий"
        app:layout_constraintEnd_toEndOf="@+id/btn_abort_order"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/tv_label_car_color"
        app:layout_constraintTop_toTopOf="@+id/tv_label_car_color" />

    <TextView
        android:id="@+id/tv_car_number"
        style="@style/DriverDataBoldBottomSheetText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="7dp"
        android:maxWidth="293dp"
        android:text="С 777 УК 159"
        app:layout_constraintEnd_toEndOf="@+id/btn_abort_order"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/tv_label_car_number"
        app:layout_constraintTop_toTopOf="@+id/tv_label_car_number" />

    <TextView
        android:id="@+id/tv_car_type"
        style="@style/DriverDataNormalBottomSheetText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="7dp"
        android:maxWidth="250dp"
        android:text="Лада Приора"
        app:layout_constraintEnd_toEndOf="@+id/btn_abort_order"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/tv_label_car"
        app:layout_constraintTop_toTopOf="@+id/tv_label_car" />

    <TextView
        android:id="@+id/tv_driver_name"
        style="@style/DriverDataNormalBottomSheetText"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="7dp"
        android:minWidth="100dp"
        android:text="Очень-очень длинные имя фамилия и отчество, которые занимают очень много места"
        app:layout_constraintEnd_toEndOf="@+id/btn_abort_order"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/tv_label_driver"
        app:layout_constraintTop_toTopOf="@+id/tv_label_driver" />

    <TextView
        android:id="@+id/tv_meet_point"
        style="@style/DriverDataBoldBottomSheetText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:maxWidth="352dp"
        android:text="«Кинотеатр Октябрь»"
        app:layout_constraintEnd_toEndOf="@+id/btn_abort_order"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="@+id/tv_label_driver"
        app:layout_constraintTop_toBottomOf="@+id/tv_label_station_name" />

    <TextView
        android:id="@+id/tv_waiting_time"
        style="@style/DriverDataBoldBottomSheetText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="5dp"
        android:text="17 минут."
        android:textSize="30sp"
        app:layout_constraintEnd_toEndOf="@+id/btn_abort_order"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/imageView"
        app:layout_constraintTop_toTopOf="@+id/imageView" />

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        app:layout_constraintEnd_toStartOf="@+id/tv_waiting_time"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintHorizontal_chainStyle="packed"
        app:layout_constraintStart_toStartOf="@+id/tv_label_station_name"
        app:layout_constraintTop_toBottomOf="@+id/tv_label_waiting_time"
        app:srcCompat="@drawable/ic_clock" />
</androidx.constraintlayout.widget.ConstraintLayout>

Проблема заключается в том, что из-за того, что я хочу использовать 0dp как ширину у textView с ФИО водителя (tv_driver_name), то, когда я резко поднимаю bottomSheet, то получается следующее:

введите сюда описание изображения

Т.е. добавляется отступ снизу у моего bottomSheet. Эмпирически я понял, что это именно из-за 0dp у textView, и, как причину могу предположить, что это из-за того, что мой текст расширяется в ширину и уменьшается в высоту, а мой FragmentContainer, возможно, не успевает это отследить вовремя и получается вот так всё. Поэтому я хотел сделать так, чтобы ширина моего фрагмента была изначально равной ширине всего экрана, и FragmentContainerView не сжимал бы мой фрагмент под свою ширину, а просто показывал кусок моего фрагмента до полного выдвижения bottomSheet

Меняю ширину BottomSheet в методе onSlide:

sheetBehavior.addBottomSheetCallback(object : BottomSheetBehavior.BottomSheetCallback() {

            /*Data for bottomSheet width dynamic change
                widthDifference and initialBottomSheetWidth are set only simultaneously with
                the 1st time sliding.
             */
            private var wasDataSet: Boolean = false
            private var initialBottomSheetMargin: Int = 0

            override fun onSlide(bottomSheet: View, slideOffset: Float) {
                if (!wasDataSet) {
                    initialBottomSheetMargin = bottom_sheet.marginStart
                    wasDataSet = true
                }

                val newMargin: Int =
                        (initialBottomSheetMargin * (1 - slideOffset)).toInt()
                val newLayoutParams = bottomSheet.layoutParams as ViewGroup.MarginLayoutParams
                newLayoutParams.marginStart = newMargin
                newLayoutParams.marginEnd = newMargin
                bottomSheet.layoutParams = newLayoutParams

            }

            override fun onStateChanged(bottomSheet: View, newState: Int) {}
        })

Ответы (0 шт):