বটমশীট আচরণটি অ্যান্ড্রয়েডএক্স লাইব্রেরিতে নেই


90

আমি BottomSheetBehaviorমূল সমর্থন লাইব্রেরি সহ এটি ব্যবহার করছিলাম :

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

আমি যখন নতুন androidxলাইব্রেরিগুলি ব্যবহার করার জন্য মাইগ্রেশন করেছি তবে এটি BottomSheetBehaviorঅনুপস্থিত রয়েছে। উপরের সমর্থন লাইব্রেরি থেকে ম্যাপিং অ্যান্ড্রয়েডএক্স রিফ্যাক্টরিং তালিকায় নেই , তবে মাইগ্রেশন সরঞ্জাম এটিকে সরিয়ে দিয়েছে।

নতুন 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'
}

উত্তর:


222

দেখা যাচ্ছে যে অ্যান্ড্রয়েড স্টুডিওতে রিফ্যাক্টর সরঞ্জামটি Refactor > Migrate to AndroidXসঠিকভাবে বটমশিটবিহাইভোরের জন্য এক্সএমএল স্থানান্তরিত করে নি।

পুরানো অবস্থানটি ছিল android.support.design.widget.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="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
আমি এই এক উপর সারা দিন কাটিয়েছি। আশা করি লোকেরা আরও সহজে আবিষ্কার করবে এই আশঙ্কাজনকভাবে।
— অ্যাডাম হুরউইজ

এএস থেকে শেষ আপডেটে এখনও অ্যান্ড্রয়েডএক্স মাইগ্রেশনে এই ত্রুটিটি সংশোধন করা হয়নি। ধন্যবাদ
— Genaut

আপনাকে অনেক ধন্যবাদ
— সার্ডোরবেক আরখ

52

আপনি প্রতিস্থাপন করতে পারে

    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"

4
আমার প্রকল্প, একটি অ্যান্ড্রয়েড স্টুডিও টেম্পলেট থেকে উত্পন্ন, ছিল না @string/bottom_sheet_behavior। আমি মনে করি implementation "com.google.android.material:material:1.1.0-alpha04"আমারapp/build.gradle
— মাইকেল ওসোফস্কি

21

আপনাকে গুগল সরবরাহিত উপাদান উপাদান লাইব্রেরি আমদানি করতে হবে ।

অ্যান্ড্রয়েডের জন্য উপাদানগুলির উপাদানগুলি অ্যান্ড্রয়েডের ডিজাইন সহায়তা লাইব্রেরির জন্য একটি ড্রপ-ইন প্রতিস্থাপন।

আপনার যোগ করুন 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"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.