web-dev-qa-db-ja.com

androidXライブラリにないBottomSheetBehavior

元のサポートライブラリでBottomSheetBehaviorを使用していました。

implementation 'com.Android.support:design:27.1.1' 

androidxがありませんが、新しいBottomSheetBehaviorライブラリを使用するように移行したとき。上記のサポートライブラリからのマッピングは AndroidX Refactoring List にもありませんが、移行ツールによって削除されました。

Bottom_SheetBehaviorを新しい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'
}
46
Jim Leask

Android St​​udio Refactor > Migrate to AndroidXのリファクタリングツールは、BottomSheetBehaviourのXMLを正しく移行しなかったことがわかりました。

古い場所はAndroid.support.design.widget.BottomSheetBehaviorであり、移行ツールによって変更されませんでした。元のXMLは次のとおりです。

<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"
    />

新しい場所はcom.google.Android.material.bottomsheet.BottomSheetBehaviorであるため、レイアウトは次のようにする必要があります。

<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"
    />
136
Jim Leask

交換することもできます

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

沿って

app:layout_behavior="@string/bottom_sheet_behavior"
31
Jose M Lechon