Установка фиксированной высоты и закругленных углов с помощью BottomSheetFragment

Я пытался установить фрагмент макета нижнего листа фиксированной высоты, не расширяемый, с закругленными углами.

Я нашел похожие вопросы stackru, в которых предлагалось установить высоту просмотра (setPeekHeight()) и приведенный ниже xml-код для установки закругленных углов с помощью методов setStyle(). Оба они мне не подошли. Как установить нижний лист фиксированной высоты без возможности расширения или перетаскивания с закругленными углами?

public class DiscoverFragment extends BaseBottomSheetDialogFragment implements Observer<DiscoverViewModelState>, OnDiscoverSelectedListener {

@BindView(R2.id.discover)
LinearLayout lDiscoverLayout;


@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setStyle(STYLE_NORMAL, R2.style.CaAppTheme);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    lView = inflater.inflate(com.misc.device.R.layout.fragment_discover, container, false);
    ButterKnife.bind(this, lView);


    /* Set the layout gravity to Bottom */
    CoordinatorLayout.LayoutParams layoutParams = new CoordinatorLayout.LayoutParams(lDiscoverLayout.getLayoutParams());
    layoutParams.gravity = Gravity.BOTTOM;
    lDiscoverLayout.setLayoutParams(layoutParams);
    return lView;
}

@NotNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    lSheet = super.onCreateDialog(savedInstanceState);

    lSheet.setOnShowListener(dialogInterface -> {
        BottomSheetDialog d = (BottomSheetDialog) lSheet;
        FrameLayout bottomSheet = d.findViewById(R.id.design_bottom_sheet);
        BottomSheetBehavior.from(bottomSheet).setHideable(false);
        //BottomSheetBehavior.from(bottomSheet).setPeekHeight(this.getResources().getDimensionPixelSize(R.dimen.peek_height));
    });

    return lSheet;
    }
}

fragment_discover.xml:

<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="?attr/layout_po_background_color"
    android:layoutDirection="locale"
    android:orientation="vertical">

    <LinearLayout
        android:id="@+id/discover"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <TextView
            android:id="@+id/ca"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="17dp"
            android:text="@string/ca"
            android:textAlignment="center"
            android:textColor="@color/gray_color"
            android:textSize="@dimen/size_12"
            android:visibility="gone"
            android:textStyle="bold" />

        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/discovered"
            android:layout_width="match_parent"
            android:layout_height="145dp"
            android:layout_marginTop="@dimen/margin"
            tools:listitem="@layout/item_discovered" />

        <ProgressBar
            android:id="@+id/progress"
            style="?android:attr/progressBarStyleSmall"
            android:layout_width="@dimen/progress_bar"
            android:layout_height="@dimen/progress_bar"
            android:layout_gravity="center"
            android:layout_marginTop="@dimen/margin"
            android:indeterminate="true"
            android:progressBackgroundTint="#606067"
            android:progressTint="#8e8e93" />

        <TextView
            android:id="@+id/state_message"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="17dp"
            android:gravity="center"
            android:paddingStart="@dimen/margin"
            android:paddingEnd="@dimen/margin"
            android:text="@string/progress_message"
            android:textColor="@color/black_color"
            android:textSize="@dimen/ca_size"
            android:visibility="visible" />

        <androidx.appcompat.widget.AppCompatButton
            android:id="@+id/error_action"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="12dp"
            android:layout_marginBottom="100dp"
            android:background="@color/action_background"
            android:padding="@dimen/action_size"
            android:textColor="@color/white"
            tools:text="@string/expo_turn_bluetooth_on_label" />

    </LinearLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

styles.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <style name="CaAppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="bottomSheetDialogTheme">@style/DialogTheme</item>
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:windowIsFloating">true</item>
    </style>

    <style name="DialogTheme"
        parent="Theme.Design.Light.BottomSheetDialog">
        <item name="bottomSheetStyle">@style/ModalStyle</item>
        <item name="android:background">@android:color/transparent</item>
        <item name="android:backgroundDimEnabled">true</item>
    </style>

    <style name="ModalStyle"
        parent="Widget.Design.BottomSheet.Modal">
        <item name="android:background">@drawable/ca_round_corners</item>
        <item name="behavior_peekHeight">50dp</item>
    </style>

</resources>

ca_round_corners.xml:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <corners
        android:topLeftRadius="24dp"
        android:topRightRadius="24dp"/>
    <solid android:color="@color/white"/>
</shape>

0 ответов