BottomSheetBehavior not in androidX libraries BottomSheetBehavior not in androidX libraries android android

BottomSheetBehavior not in androidX libraries


It turns out that the refactor tool in Android Studio Refactor > Migrate to AndroidX didn't correctly migrate the XML for the BottomSheetBehaviour.

The old location was android.support.design.widget.BottomSheetBehavior, and was not modified by the migration tool. The original XML was:

<fragment    android:id="@+id/player_bottom_sheet_fragment"    android:name="app.rxsongbrowsertrials.ui.player.PlayerToggleFragment"    android:layout_width="match_parent"    android:layout_height="match_parent"    app:behavior_hideable="false"    app:behavior_peekHeight="56dp"    app:layout_behavior="android.support.design.widget.BottomSheetBehavior"    />

The new location is com.google.android.material.bottomsheet.BottomSheetBehavior, so the layout needs to become:

<fragment    android:id="@+id/player_bottom_sheet_fragment"    android:name="app.rxsongbrowsertrials.ui.player.PlayerToggleFragment"    android:layout_width="match_parent"    android:layout_height="match_parent"    app:behavior_hideable="false"    app:behavior_peekHeight="56dp"    app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior"    />


You could also replace

    app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior"or     app:layout_behavior="android.support.design.widget.BottomSheetBehavior"

by

app:layout_behavior="@string/bottom_sheet_behavior"


You have to import the Material Components Library provided by Google.

Material Components for Android is a drop-in replacement for Android's Design Support Library.

Add in your build.gradle:

implementation 'com.google.android.material:material:x.x.x'

Then use the class com.google.android.material.bottomsheet.BottomSheetBehavior.

In your layout you can use the attribute:

    app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior"    ..>

or

app:layout_behavior="@string/bottom_sheet_behavior"