J'utilisais la BottomSheetBehavior
avec la bibliothèque de support d'origine:
implementation 'com.Android.support:design:27.1.1'
Lorsque j'ai migré pour utiliser les nouvelles bibliothèques androidx
bien que le fichier BottomSheetBehavior
soit manquant. Le mappage de la bibliothèque de support ci-dessus ne figure pas dans le liste de refactoring AndroidX , mais l'outil de migration l'a supprimé.
Que manque-t-il pour inclure BottomSheetBehavior avec les nouvelles bibliothèques androidx
.
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.google.Android.material:material:1.0.0-beta01'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
// ReactiveX
implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
implementation 'io.reactivex.rxjava2:rxkotlin:2.2.0'
implementation 'com.Android.support:design:28.1.0'
// Android Compatability Libraries
// Version: https://developer.Android.com/topic/libraries/support-library/refactor
implementation 'androidx.appcompat:appcompat:1.0.0-beta01'
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha1'
implementation 'androidx.legacy:legacy-support-v4:1.0.0-beta01'
implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0-beta01'
implementation 'androidx.recyclerview:recyclerview:1.0.0-beta01'
// Android Navigation Component
// Check here for updated version info - will move to androidx soon.
// https://developer.Android.com/topic/libraries/architecture/adding-components
def nav_version = "1.0.0-alpha04"
// use -ktx for Kotlin
implementation "Android.Arch.navigation:navigation-fragment-ktx:$nav_version"
implementation "Android.Arch.navigation:navigation-ui-ktx:$nav_version"
androidTestImplementation "Android.Arch.navigation:navigation-testing-ktx:$nav_version"
// Testing
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.0-alpha4'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4'
}
Il s'avère que l'outil de refactorisation dans Android Studio Refactor > Migrate to AndroidX
n'a pas migré correctement le code XML pour BottomSheetBehaviour.
L'ancien emplacement était Android.support.design.widget.BottomSheetBehavior
et n'a pas été modifié par l'outil de migration. Le XML d'origine était:
<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"
/>
Le nouvel emplacement est com.google.Android.material.bottomsheet.BottomSheetBehavior
, la mise en page doit donc devenir:
<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"
/>
Vous pouvez également remplacer
app:layout_behavior="com.google.Android.material.bottomsheet.BottomSheetBehavior"
or
app:layout_behavior="Android.support.design.widget.BottomSheetBehavior"
par
app:layout_behavior="@string/bottom_sheet_behavior"