एंड्रॉइड एक्स लाइब्रेरी में बॉटमशीटबहेवियर नहीं


92

मैं BottomSheetBehaviorमूल समर्थन पुस्तकालय के साथ प्रयोग कर रहा था :

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

जब मैं नए androidxपुस्तकालयों का उपयोग करने के लिए पलायन कर रहा हूं, हालांकि BottomSheetBehaviorयह गायब है। उपरोक्त समर्थन लाइब्रेरी से मैपिंग AndroidX Refactoring List में नहीं है, लेकिन माइग्रेशन टूल ने इसे हटा दिया।

मुझे नई 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'
}

जवाबों:


226

यह पता चला है कि एंड्रॉइड स्टूडियो Refactor > Migrate to AndroidXमें रिफ्लेक्टर टूल एक्सएमएल के लिए बॉटमशीटबाइहवियर के लिए सही तरीके से माइग्रेट नहीं करता है।

पुराना स्थान था 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"
    />

7
मैंने सारा दिन इसी पर बिताया। उम्मीद है कि यह लोगों को और अधिक आसानी से खोजने के लिए बुदबुदाया।
एडम हर्विट्ज

AS से अंतिम अपडेट में अभी भी AndroidX माइग्रेशन में इस त्रुटि को ठीक नहीं किया है। धन्यवाद
Genaut

बहुत बहुत धन्यवाद
सरबोरख राख

54

आप भी बदल सकते हैं

    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"

1
मेरा प्रोजेक्ट, एक एंड्रॉइड स्टूडियो टेम्पलेट से उत्पन्न हुआ, नहीं था @string/bottom_sheet_behavior। मुझे लगता है कि मैं इसे implementation "com.google.android.material:material:1.1.0-alpha04"अपने साथ जोड़कर खींचने में सक्षम थाapp/build.gradle
माइकल ओसोफस्की

22

आपको Google द्वारा प्रदत्त सामग्री अवयव पुस्तकालय का आयात करना होगा ।

एंड्रॉइड के लिए सामग्री घटक एंड्रॉइड के डिजाइन सपोर्ट लाइब्रेरी के लिए एक ड्रॉप-इन प्रतिस्थापन है।

अपने में जोड़ें build.gradle:

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

फिर कक्षा का उपयोग करें com.google.android.material.bottomsheet.BottomSheetBehavior

अपने लेआउट में आप विशेषता का उपयोग कर सकते हैं:

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

या

app:layout_behavior="@string/bottom_sheet_behavior"
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.