BottomSheetBehavior androidX kitaplıklarında yok


92

Ben kullanıyordum BottomSheetBehaviororijinal destek kütüphanesi ile:

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

Eksik androidxolsa da yeni kitaplıkları kullanmak için geçiş yaptığımda BottomSheetBehavior. Yukarıdaki destek kitaplığındaki eşleme de AndroidX Yeniden Düzenleme Listesinde değil, ancak taşıma aracı onu kaldırdı.

BottomSheetBehavior'ı yeni androidxkitaplıklara dahil etmek için neyi kaçırıyorum .

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'
}

Yanıtlar:


226

Android Studio'daki yeniden düzenleme aracının Refactor > Migrate to AndroidXBottomSheetBehaviour için XML'i doğru şekilde taşımadığı ortaya çıktı.

Eski yer android.support.design.widget.BottomSheetBehavior taşıma aracı tarafından değiştirilmiş ve değiştirilmemiştir. Orijinal XML şuydu:

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

Yeni konum com.google.android.material.bottomsheet.BottomSheetBehavior, dolayısıyla düzen şu hale gelmelidir:

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

7
Bütün günümü bununla geçirdim. Umarım bu, insanların daha kolay keşfetmesi için köpürmüştür.
Adam Hurwitz

AS'den yapılan son güncellemede, AndroidX geçişinde bu hatayı hala düzeltilmedi. Teşekkürler
Genaut

Çok teşekkür ederim
Sardorbek Rkh

54

Ayrıca değiştirebilirsiniz

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

tarafından

app:layout_behavior="@string/bottom_sheet_behavior"

1
Bir Android Studio şablonundan oluşturulan projemde yoktu @string/bottom_sheet_behavior. Ben ekleyerek bunu çekmek mümkün olduğunu düşünüyorum implementation "com.google.android.material:material:1.1.0-alpha04"benim içinapp/build.gradle
Michael Osofsky

22

Google tarafından sağlanan Malzeme Bileşenleri Kitaplığını içe aktarmanız gerekir .

Android için Materyal Bileşenleri, Android Tasarım Destek Kitaplığı'nın yerine geçmiştir.

Şunu ekleyin build.gradle:

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

Ardından sınıfı kullanın com.google.android.material.bottomsheet.BottomSheetBehavior.

Düzeninizde şu özelliği kullanabilirsiniz:

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

veya

app:layout_behavior="@string/bottom_sheet_behavior"
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.