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


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.