फ़्रैगमेंट

अपने ऐप्लिकेशन को अलग-अलग गतिविधि में होस्ट की जाने वाली कई अलग-अलग स्क्रीन में बांटें.
नया अपडेट स्टेबल रिलीज़ रिलीज़ कैंडिडेट बीटा रिलीज़ ऐल्फ़ा रिलीज़
4 सितंबर, 2024 1.8.3 - - -

डिपेंडेंसी तय करना

फ़्रैगमेंट पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट. Google की Maven रिपॉज़िटरी पढ़ें हमारा वीडियो देखें.

उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको build.gradle फ़ाइल में ज़रूरत है आपका ऐप्लिकेशन या मॉड्यूल:

ग्रूवी

dependencies {
    def fragment_version = "1.8.3"

    // Java language implementation
    implementation "androidx.fragment:fragment:$fragment_version"
    // Kotlin
    implementation "androidx.fragment:fragment-ktx:$fragment_version"
    // Compose
    implementation "androidx.fragment:fragment-compose:$fragment_version"
    // Testing Fragments in Isolation
    debugImplementation "androidx.fragment:fragment-testing-manifest:$fragment_version"
    androidTestImplementation "androidx.fragment:fragment-testing:$fragment_version"
}

Kotlin

dependencies {
    val fragment_version = "1.8.3"

    // Java language implementation
    implementation("androidx.fragment:fragment:$fragment_version")
    // Kotlin
    implementation("androidx.fragment:fragment-ktx:$fragment_version")
    // Compose
    implementation("androidx.fragment:fragment-compose:$fragment_version")
    // Testing Fragments in Isolation
    debugImplementation("androidx.fragment:fragment-testing:$fragment_version")
}

डिपेंडेंसी के बारे में ज़्यादा जानकारी के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.

सुझाव

आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको नई समस्याओं का पता चलता है या आपको इस लाइब्रेरी को बेहतर बनाने के लिए आइडिया मिल सकते हैं. कृपया, इस मौजूदा समस्याएं इस लाइब्रेरी में जोड़ें. किसी मौजूदा समस्या के लिए अपना वोट दें. इसके लिए ये तरीके अपनाएं: स्टार बटन पर क्लिक करके ऐसा किया जा सकता है.

नई समस्या जोड़ें

समस्या को ट्रैक करने वाले टूल से जुड़ा दस्तावेज़ देखें हमारा वीडियो देखें.

वर्शन 1.8

वर्शन 1.8.3

4 सितंबर, 2024

androidx.fragment:fragment-*:1.8.3 रिलीज़ हो गया है. वर्शन 1.8.3 में ये शर्तें शामिल हैं.

गड़बड़ियां ठीक की गईं

  • अनुमानित वापस जाने के जेस्चर को हैंडल करते समय, FragmentManager अब सही तरीके से उन कार्रवाइयों को ध्यान में रखता है जिनकी मंज़ूरी बाकी है. इससे यह पक्का किया जाना चाहिए कि सिस्टम को फिर से चलाने पर IndexOutOfBoundsException की समस्या न हो. (I9ba32, b/342316801)
  • कंपोज़िशन में गतिविधि/फ़्रैगमेंट की स्थिति पहले से सेव होने के दौरान, अगर AndroidFragment को कंपोज़िशन में जोड़ा जाता है, तो यह अब क्रैश नहीं होता है. (I985e9, b/356643968)

वर्शन 1.8.2

24 जुलाई, 2024

androidx.fragment:fragment-*:1.8.2 रिलीज़ हो गया है. वर्शन 1.8.2 में ये शर्तें शामिल हैं.

गड़बड़ियां ठीक की गईं

  • AndroidFragment अब ऐसे मामलों को सही तरीके से हैंडल करता है जहां पैरंट फ़्रैगमेंट को फ़्रैगमेंट के बैक स्टैक पर रखा जाता है. साथ ही, 'आईडी के लिए कोई व्यू नहीं मिला' को अनदेखा किया जाता है समस्याएं आती हैं. (I94608)
  • FragmentTransaction.add तरीके से जोड़े गए फ़्रैगमेंट जो ViewGroup लेता है, अब onStart() तक आगे बढ़ने से पहले onContainerAvailable का इंतज़ार करें. इसका असर उस एपीआई के उपयोगकर्ताओं पर पड़ता है, जैसे कि AndroidFragment. अब यह एपीआई onStart() पर जाने से पहले, AndroidFragment के कंपोज़िशन में फिर से शामिल होने का इंतज़ार करता है. (I94608)

वर्शन 1.8.1

26 जून, 2024

androidx.fragment:fragment-*:1.8.1 रिलीज़ हो गया है. वर्शन 1.8.1 में ये शर्तें शामिल हैं.

गड़बड़ियां ठीक की गईं

  • उस समस्या को ठीक किया गया है जिसमें पिछले जेस्चर को शुरू करते समय, बिना कंटेनर वाले फ़्रैगमेंट तुरंत DESTROYED थे. अब जेस्चर के पूरा होने तक, उन्हें CREATED स्थिति में रखा जाएगा. (If6b83, b/345244539)

वर्शन 1.8.0

12 जून, 2024

androidx.fragment:fragment-*:1.8.0 रिलीज़ हो गया है. वर्शन 1.8.0 में ये बातें शामिल हैं.

1.7.0 के बाद से हुए अहम बदलाव

  • fragment-compose आर्टफ़ैक्ट में अब एक AndroidFragment Composable है, जो फ़्रैगमेंट क्लास के नाम की मदद से, कंपोज़ की हैरारकी में फ़्रैगमेंट जोड़ने की अनुमति देता है. यह फ़्रैगमेंट की स्थिति को सेव और वापस लाने का काम अपने-आप मैनेज करता है. इसका इस्तेमाल किसी फ़्रैगमेंट को बढ़ाने के लिए, AndroidViewBinding का इस्तेमाल करने के सुझाए गए पहले के तरीके की जगह सीधे तौर पर किया जाना चाहिए.
  • FragmentManager के OnBackStackChangedListener इंटरफ़ेस पर onBackStackChangeCancelled कॉलबैक, अब FragmentManager में कार्रवाइयों को एक्ज़ीक्यूट करने के हिस्से के तौर पर ट्रिगर होता है. ऐसा करते हुए, इसे onBackStackChangeCommitted कॉलबैक के समय के करीब ले जाया जाता है.

वर्शन 1.8.0-rc01

29 मई, 2024

androidx.fragment:fragment-*:1.8.0-rc01 रिलीज़ हो गया है. वर्शन 1.8.0-rc01 में ये कमिट शामिल हैं.

गड़बड़ियां ठीक की गईं

  • FragmentManagers OnBackStackChangedListener इंटरफ़ेस पर onBackStackChangeCancelled कॉलबैक, अब FragmentManager में ऑपरेशन के तहत फ़ायर होता है. इसे onBackStackChangeCommitted कॉलबैक के समय के करीब ले जाया जाता है. (I5ebfb, b/332916112)

वर्शन 1.8.0-beta01

14 मई, 2024

androidx.fragment:fragment-*:1.8.0-beta01 रिलीज़ हो गया है. वर्शन 1.8.0-beta01 में ये प्रतिबद्धताएं शामिल हैं.

गड़बड़ियां ठीक की गईं

  • फ़्रैगमेंट 1.7.1 से: अनुमानित बैक अब सिर्फ़ ऐसे लेन-देन के लिए चलेगा जिनमें सभी फ़्रैगमेंट में या तो ऐनिमेटर हो या सीकेबल Androidx ट्रांज़िशन. इससे उस समस्या का समाधान हो जाता है जहां आंशिक रूप से खोजे जा सकने वाले लेन-देन को रद्द करने से ब्लैक स्क्रीन होती है. (I43037, b/339169168)

वर्शन 1.8.0-alpha02

17 अप्रैल, 2024

androidx.fragment:fragment-*:1.8.0-alpha02 रिलीज़ हो गया है. वर्शन 1.8.0-alpha02 में ये कमिट मौजूद हैं.

गड़बड़ियां ठीक की गईं

  • फ़्रैगमेंट 1.7.0-rc02 से: जोड़े गए लॉग, ताकि यह बताया जा सके कि किसी अन्य ट्रांज़िशन के बिना sharedElement को सेट करने की सुविधा क्यों काम नहीं करेगी. (Iec48e)
  • फ़्रैगमेंट 1.7.0-rc02 से: गड़बड़ी को ठीक किया गया है, जहां किसी ऐसे ट्रांज़ैक्शन में शेयर किया गया ऐसा एलिमेंट जोड़ा गया जिसे खोजा नहीं जा सकता और जिसमें अन्य सभी ट्रांज़िशन खोजे जा सकते थे, तो क्रैश हो सकता है. अब यह माना जाएगा कि लेन-देन नहीं किया जा सकता. (I18ccd)

वर्शन 1.8.0-alpha01

3 अप्रैल, 2024

androidx.fragment:fragment-*:1.8.0-alpha01 रिलीज़ हो गया है. वर्शन 1.8.0-alpha01 में ये कमिट मौजूद हैं.

नई सुविधाएं

  • नया AndroidFragment Composable, फ़्रैगमेंट क्लास नाम के ज़रिए कंपोज़ की हैरारकी में फ़्रैगमेंट जोड़ने की अनुमति देता है. यह फ़्रैगमेंट की स्थिति को सेव और वापस लाने का काम अपने-आप मैनेज करता है. इसका इस्तेमाल AndroidViewBinding Composable की जगह सीधे तौर पर किया जा सकता है. Composable.(b/312895363, Icf841)

दस्तावेज़ों में हुए बदलाव

  • OnBackStackChangedListener API के दस्तावेज़ अपडेट किए गए, ताकि यह बताया जा सके कि उन्हें कब कॉल किया जाए और उनका इस्तेमाल कैसे किया जाए. (I0bfd9)

डिपेंडेंसी अपडेट

वर्शन 1.7

वर्शन 1.7.1

14 मई, 2024

androidx.fragment:fragment-*:1.7.1 रिलीज़ हो गया है. वर्शन 1.7.1 में ये बातें शामिल हैं.

गड़बड़ियां ठीक की गईं

  • अनुमानित बैक, अब सिर्फ़ ऐसे लेन-देन के लिए चलेगा जिनमें सभी फ़्रैगमेंट में या तो ऐनिमेटर हो या सीकेबल Androidx ट्रांज़िशन. इससे उस समस्या का समाधान हो जाता है जहां आंशिक रूप से खोजे जा सकने वाले लेन-देन को रद्द करने से स्क्रीन खाली हो जाती है. (I43037, b/339169168)

वर्शन 1.7.0

1 मई, 2024

androidx.fragment:fragment-*:1.7.0 रिलीज़ हो गया है. वर्शन 1.7.0 में ये बातें शामिल हैं.

बैक जेस्चर की सुविधा का इस्तेमाल करना

  • फ़्रैगमेंट अब Animator का इस्तेमाल करते समय या AndroidX ट्रांज़िशन 1.5.0 का इस्तेमाल करते समय, अनुमानित इन-ऐप्लिकेशन के लिए सहायता देते हैं. इससे उपयोगकर्ता, जेस्चर (हाव-भाव) को पूरा करके या सदस्यता रद्द करके लेन-देन करने से पहले, पिछले फ़्रैगमेंट को देखने के लिए, पीछे के जेस्चर का इस्तेमाल कर सकते हैं. इसके लिए, वे आपके ऐनिमेटर/ट्रांज़िशन का इस्तेमाल करते हैं.
ट्रांज़िशन सिस्टम एक्सएमएल संसाधन प्रेडिक्टिव बैक सपोर्ट करता है
Animation R.anim नहीं
Animator R.animator हां
फ़्रेमवर्क Transition R.transition नहीं
ट्रांज़िशन 1.4.1 या इससे कम वर्शन वाला AndroidX Transition R.transition नहीं
ट्रांज़िशन 1.5.0 के साथ AndroidX Transition R.transition हां

अनुमानित बैक जेस्चर का इस्तेमाल करने के बाद, अगर आपको फ़्रैगमेंट में अनुमानित बैक अप सहायता से जुड़ी कोई समस्या दिखती है, तो कृपया किसी सैंपल प्रोजेक्ट की मदद से फ़्रैगमेंट के लिए समस्या दर्ज करें. यह प्रोजेक्ट आपकी समस्या के बारे में जानकारी देता है. अपनी गतिविधि के onCreate() में मौजूद FragmentManager.enabledPredictiveBack(false) का इस्तेमाल करके, अनुमानित जानकारी को फिर से बंद किया जा सकता है.

FragmentManager.OnBackStackChangedListener(), अब इवेंट के अनुमानित प्रोग्रेस और रद्द किए गए इवेंट के सुझाव पाने के लिए, onBackStackChangeProgressed() और onBackStackChangeCancelled() का इस्तेमाल करता है.

फ़्रैगमेंट कंपोज़ आर्टफ़ैक्ट

एक नया fragment-compose आर्टफ़ैक्ट बनाया गया है, जो ऐसे ऐप्लिकेशन पर फ़ोकस करता है जो फ़्रैगमेंट पर आधारित आर्किटेक्चर से पूरी तरह से कंपोज़ पर आधारित आर्किटेक्चर पर जाने की प्रोसेस में हैं.

इस नए आर्टफ़ैक्ट में पहली सुविधा, Fragment पर content एक्सटेंशन का तरीका उपलब्ध है. इसका मकसद आपके लिए ComposeView बनाकर और सही ViewCompositionStrategy सेट करके, किसी व्यक्तिगत फ़्रैगमेंट के यूज़र इंटरफ़ेस (यूआई) के लिए, कंपोज़ की सुविधा का इस्तेमाल करना आसान बनाना है.

  class ExampleFragment : Fragment() {

      override fun onCreateView(
          inflater: LayoutInflater,
          container: ViewGroup?,
          savedInstanceState: Bundle?
      ) = content {
          // Write your @Composable content here
          val viewModel: ExampleViewModel = viewModel()

          // or extract it into a separate, testable method
          ExampleComposable(viewModel)
      }
  }

वर्शन 1.7.0-rc02

17 अप्रैल, 2024

androidx.fragment:fragment-*:1.7.0-rc02 रिलीज़ हो गया है. वर्शन 1.7.0-rc02 में ये बातें शामिल हैं.

गड़बड़ियां ठीक की गईं

  • यह बताने के लिए लॉग जोड़े गए हैं कि बिना किसी दूसरे ट्रांज़िशन के sharedElement को सेट करने से यह प्रोसेस क्यों नहीं हो पाएगी. (Iec48e)
  • गड़बड़ी को ठीक किया गया है. अगर लेन-देन में ऐसा शेयर किया गया एलिमेंट जोड़ा गया है जिसे खोजा नहीं जा सकता और उसमें अन्य सभी ट्रांज़िशन खोजे जा सकते थे, तो क्रैश हो सकता था. अब यह माना जाएगा कि लेन-देन नहीं किया जा सकता. (I18ccd)

वर्शन 1.7.0-rc01

3 अप्रैल, 2024

androidx.fragment:fragment-*:1.7.0-rc01 रिलीज़ हो गया है. वर्शन 1.7.0-rc01 में ये बातें शामिल हैं.

डिपेंडेंसी अपडेट

वर्शन 1.7.0-beta01

20 मार्च, 2024

androidx.fragment:fragment-*:1.7.0-beta01 रिलीज़ हो गया है. वर्शन 1.7.0-beta01 में ये प्रतिबद्धताएं शामिल हैं.

एपीआई में किए गए बदलाव

  • FragmentHostCallback को अब Kotlin में लिखा गया है, ताकि होस्ट के जेनरिक टाइप की शून्य वैल्यू का मिलान, onGetHost() के रिटर्न टाइप की शून्यता से हो सके. (I40af5)

गड़बड़ियां ठीक की गईं

  • उस समस्या को ठीक किया गया है जहां किसी ऐसे फ़्रैगमेंट पर, पीछे जाने के लिए अनुमानित जेस्चर इस्तेमाल किया जाता है जो कंटेनर में नहीं है. इस समस्या को ठीक किया गया है, ताकि वह फ़्रैगमेंट कभी खत्म नहीं होगा. फ़्रैगमेंट को तुरंत आखिरी स्थिति में ले जाया जाएगा. (Ida0d9)
  • फ़्रैगमेंट में आने वाली समस्या को ठीक किया गया है, जहां अनुमानित वापस जाने के जेस्चर की मदद से आने वाले ट्रांज़िशन को रोकने से, एंटरिंग व्यू खत्म हो जाएगा और खाली स्क्रीन छोड़ दी जाएगी. (Id3f22, b/319531491)

वर्शन 1.7.0-alpha10

7 फ़रवरी, 2024

androidx.fragment:fragment-*:1.7.0-alpha10 रिलीज़ हो गया है. वर्शन 1.7.0-alpha10 में ये कमियां हैं.

गड़बड़ियां ठीक की गईं

  • पिछली फ़्रैगमेंट रिलीज़ में पहले से मालूम समस्या को ठीक कर दिया गया है, जहां Animator या AndroidX ट्रांज़िशन के लिए फ़्रैगमेंट के 'पेरिक्टिव बैक' सुविधा का इस्तेमाल किया जा रहा है. अगर addOnBackStackChangedListener के ज़रिए अब तक कोई FragmentManager.OnBackStackChangedListener नहीं जोड़ा गया है, तो फ़्रैगमेंट handleOnBackProgressed से NullPointerException देंगे. (I7c835)

वर्शन 1.7.0-alpha09

24 जनवरी, 2024

androidx.fragment:fragment-*:1.7.0-alpha09 रिलीज़ हो गया है. वर्शन 1.7.0-alpha09 में ये कमिट हैं.

फ़्रैगमेंट कंपोज़ आर्टफ़ैक्ट

एक नया fragment-compose आर्टफ़ैक्ट बनाया गया है, जो ऐसे ऐप्लिकेशन पर फ़ोकस करता है जो फ़्रैगमेंट पर आधारित आर्किटेक्चर से पूरी तरह से कंपोज़ पर आधारित आर्किटेक्चर पर जाने की प्रोसेस में हैं.

इस नए आर्टफ़ैक्ट में पहली सुविधा, Fragment पर content एक्सटेंशन का तरीका उपलब्ध है. इसका मकसद आपके लिए ComposeView बनाकर और सही ViewCompositionStrategy सेट करके, किसी व्यक्तिगत फ़्रैगमेंट के यूज़र इंटरफ़ेस (यूआई) के लिए, कंपोज़ की सुविधा का इस्तेमाल करना आसान बनाना है. (561cb7, b/258046948)

class ExampleFragment : Fragment() {

    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ) = content {
        // Write your @Composable content here
        val viewModel: ExampleViewModel = viewModel()

        // or extract it into a separate, testable method
        ExampleComposable(viewModel)
    }
}

नई सुविधाएं

  • FragmentManager.OnBackStackChangedListener(), अब इवेंट के अनुमानित प्रोग्रेस और रद्द किए गए इवेंट के सुझाव पाने के लिए, onBackStackChangeProgressed() और onBackStackChangeCancelled() का इस्तेमाल करता है. (214b87)

आम समस्या

  • Animator या AndroidX ट्रांज़िशन के लिए, फ़्रैगमेंट के अनुमानित बैक सपोर्ट का इस्तेमाल करते समय, अगर addOnBackStackChangedListener के ज़रिए अब तक कोई FragmentManager.OnBackStackChangedListener नहीं जोड़ा गया है, तो फ़्रैगमेंट handleOnBackProgressed से NullPointerException देंगे. मैन्युअल तरीके से लिसनर जोड़ने से, क्रैश होने से जुड़ी समस्या हल हो जाएगी. फ़्रैगमेंट की अगली रिलीज़ में इसका समाधान उपलब्ध होगा.

वर्शन 1.7.0-alpha08

10 जनवरी, 2024

androidx.fragment:fragment-*:1.7.0-alpha08 रिलीज़ हो गया है. वर्शन 1.7.0-alpha08 में ये कमिट हैं.

खाली करने के लिए जगह

वर्शन 1.7.0-alpha07

29 नवंबर, 2023

androidx.fragment:fragment-*:1.7.0-alpha07 रिलीज़ हो गया है. वर्शन 1.7.0-alpha07 में ये कमिट हैं.

गड़बड़ियां ठीक की गईं

  • शेयर किए गए एलिमेंट का ट्रांज़िशन सेट करने और Enter/बाहर निकलने का ट्रांज़िशन सेट न कर पाने की वजह से, NullPointerException को ठीक किया गया. (I8472b)
  • फ़्रैगमेंट 1.6.2 से: जब FragmentContainerView का फ़्रैगमेंट इनफ़्लेट होता है, तो इसके FragmentManager, होस्ट, और आईडी जैसी स्थितियों को अब onInflate कॉलबैक में ऐक्सेस किया जा सकता है. (I1e44c, b/307427423)
  • फ़्रैगमेंट 1.6.2 से: फ़्रैगमेंट के सेट को हटाने के लिए clearBackStack का इस्तेमाल करते समय, पैरंट फ़्रैगमेंट का ViewModels हटाने पर, नेस्ट किए गए किसी भी फ़्रैगमेंट के ViewModel को हटा दिया जाएगा. (I6d83c, b/296173018)

वर्शन 1.7.0-alpha06

4 अक्टूबर, 2023

androidx.fragment:fragment-*:1.7.0-alpha06 रिलीज़ हो गया है. वर्शन 1.7.0-alpha06 में ये कमिट हैं.

डिपेंडेंसी अपडेट

  • ट्रांज़िशन 1.5.0-alpha04 में जोड़े गए नए animateToStart एपीआई के हिसाब से फ़्रैगमेंट अपडेट किए गए हैं.

वर्शन 1.7.0-alpha05

20 सितंबर, 2023

androidx.fragment:fragment-*:1.7.0-alpha05 रिलीज़ हो गया है. वर्शन 1.7.0-alpha05 में ये कमियां हैं.

नई सुविधाएं

  • Androidx ट्रांज़िशन का इस्तेमाल करते समय, फ़्रैगमेंट अब अनुमानित वापस के लिए सहायता उपलब्ध कराते हैं. इससे आपको हाथ के जेस्चर का इस्तेमाल करके, पिछले फ़्रैगमेंट पर जाने के लिए, अपने कस्टम Androidx ट्रांज़िशन के पिछले हिस्से पर जाने की सुविधा मिलती है. इस सुविधा को चालू करने के लिए, आपको ट्रांज़िशन 1.5.0-alpha03 रिलीज़ पर निर्भर होना होगा. (Ib49b4, b/285175724)

आम समस्याएं

  • फ़िलहाल, ऐसी समस्या है जिसमें एक बार ट्रांज़िशन के साथ पीछे जाने का जेस्चर रद्द करने के बाद, अगली बार 'वापस जाएं' जेस्चर चालू करने पर वह ट्रांज़िशन नहीं चलेगा. इस वजह से, स्क्रीन खाली हो जाएगी. ऐसा ट्रांज़िशन लाइब्रेरी में मौजूद किसी समस्या की वजह से हो सकता है. (b/300157785). अगर आपको यह समस्या दिखती है, तो कृपया सैंपल प्रोजेक्ट की मदद से फ़्रैगमेंट के ख़िलाफ़ समस्या दर्ज करें. यह प्रोजेक्ट आपकी समस्या के बारे में बताता है. अपनी गतिविधि के onCreate() में मौजूद FragmentManager.enabledPredictiveBack(false) का इस्तेमाल करके, अनुमानित जानकारी को फिर से बंद किया जा सकता है.

वर्शन 1.7.0-alpha04

6 सितंबर, 2023

androidx.fragment:fragment-*:1.7.0-alpha04 रिलीज़ हो गया है. वर्शन 1.7.0-alpha04 में ये कमिट हैं.

गड़बड़ियां ठीक की गईं

  • पिछले पेज पर वापस जाने के जेस्चर को रद्द करने के दौरान आने वाली समस्या को ठीक किया गया है, जहां फ़्रैगमेंट, लाइफ़साइकल की सही स्थिति पर नहीं पहुंच पाए. (I7cffe, b/297379023)
  • ऐसे रिग्रेशन को ठीक किया गया जहां ऐनिमेशन को ट्रांज़िशन के साथ चलाने की अनुमति दी गई थी. (I59f36)
  • फ़्रैगमेंट के साथ अनुमानित बैक का इस्तेमाल करते समय, उस समस्या को ठीक किया गया है जहां पिछली फ़्रैगमेंट के दूसरे से आखिरी फ़्रैगमेंट में, दो बार तेज़ी से वापस जाने की कोशिश करने पर क्रैश हो सकता था. (Ifa1a4)

वर्शन 1.7.0-alpha03

23 अगस्त, 2023

androidx.fragment:fragment-*:1.7.0-alpha03 रिलीज़ हो गया है. वर्शन 1.7.0-alpha03 में ये कमियां हैं.

गड़बड़ियां ठीक की गईं

  • प्रेडिक्टिव बैक का इस्तेमाल करते समय फ़्रैगमेंट से जुड़ी उस समस्या को ठीक किया गया है जिसकी वजह से फ़्रैगमेंट मैनेजर के बैक स्टैक का पहला फ़्रैगमेंट छोड़ दिया गया था. साथ ही, 3 बटन वाले नेविगेशन या अनुमानित बैक जेस्चर के ज़रिए सिस्टम का इस्तेमाल करते समय गतिविधि खत्म होने वाली थी. (I0664b, b/295231788)

वर्शन 1.7.0-alpha02

9 अगस्त, 2023

androidx.fragment:fragment-*:1.7.0-alpha02 रिलीज़ हो गया है. वर्शन 1.7.0-alpha02 में ये कमियां हैं.

गड़बड़ियां ठीक की गईं

  • एपीआई 34 से प्रेडिक्टिव बैक जेस्चर वाले फ़्रैगमेंट इस्तेमाल करते समय, अगर आपने ऐसे ट्रांज़िशन सिस्टम का इस्तेमाल किया है जिसमें वीडियो खोजने की सुविधा (Animations, Transitions) काम नहीं करती या कोई ट्रांज़िशन नहीं होता, तो फ़्रैगमेंट अब बैक ऐक्शन लागू करने से पहले जेस्चर के पूरा होने का इंतज़ार करेंगे. (I8100c)

वर्शन 1.7.0-alpha01

7 जून, 2023

androidx.fragment:fragment-*:1.7.0-alpha01 रिलीज़ हो गया है. इस वर्शन को हमारी सहायता टीम के तहत बनाया गया है.

नई सुविधाएं

  • Animator का इस्तेमाल करते समय, फ़्रैगमेंट अब अनुमानित इन-ऐप्लिकेशन के लिए सहायता देते हैं. इससे आपको हाथ के जेस्चर का इस्तेमाल करके लेन-देन करने या उसे रद्द करने से पहले, अपने कस्टम ऐनिमेटर के साथ पिछला फ़्रैगमेंट देखने की सुविधा मिलती है. प्रयोग enablePredictiveBack() का इस्तेमाल करके और false पास करके भी इस नई कार्रवाई को बंद किया जा सकता है.

वर्शन 1.6

वर्शन 1.6.2

1 नवंबर, 2023

androidx.fragment:fragment-*:1.6.2 रिलीज़ हो गया है. वर्शन 1.6.2 में ये कमियां शामिल हैं.

गड़बड़ियां ठीक की गईं

  • जब FragmentContainerView के फ़्रैगमेंट को इनफ़्लेट किया जाता है, तो इसके FragmentManager, होस्ट, और आईडी जैसे स्टेटस को अब onInflate कॉलबैक में ऐक्सेस किया जा सकता है. (I1e44c, b/307427423)
  • फ़्रैगमेंट के सेट को हटाने के लिए clearBackStack का इस्तेमाल करने पर, पैरंट फ़्रैगमेंट का ViewModels हटाने पर, नेस्ट किए गए किसी भी फ़्रैगमेंट का ViewModel अब मिट जाएगा. (I6d83c, b/296173018)

वर्शन 1.6.1

26 जुलाई, 2023

androidx.fragment:fragment-*:1.6.1 रिलीज़ हो गया है. वर्शन 1.6.1 में ये कमियां शामिल हैं.

गड़बड़ियां ठीक की गईं

  • उस समस्या को ठीक कर दिया गया है जिसकी वजह से फ़्रैगमेंट इंस्टेंस को RESUMED स्थिति में वापस ले जाने के बाद भी, सेव की गई स्थिति को गलत तरीके से कैश मेमोरी में सेव किया जाता था. ऐसा तब होता था, जब गतिविधि को रोका जाता था, लेकिन खत्म नहीं किया जाता. अगर एक से ज़्यादा बैक स्टैक एपीआई का इस्तेमाल करते समय, उस फ़्रैगमेंट को सेव और वापस लाने के लिए, उस फ़्रैगमेंट इंस्टेंस को बैक स्टैक पर रखा गया हो, तो इससे कैश मेमोरी में सेव किए गए स्टेटस को फिर से इस्तेमाल किया जा सकता है. (I71288, b/246289075)

डिपेंडेंसी अपडेट

  • फ़्रैगमेंट अब गतिविधि 1.7.2 पर निर्भर करता है. यह उस समस्या को ठीक कर देता है जिसकी वजह से Kotlin के उपयोगकर्ता, गतिविधि पर साफ़ तौर पर डिपेंडेंसी के बिना ComponentDialog को बढ़ा नहीं सकते. (b/287509323)

वर्शन 1.6.0

7 जून, 2023

androidx.fragment:fragment-*:1.6.0 रिलीज़ हो गया है. वर्शन 1.6.0 में ये कमियां शामिल हैं.

1.5.0 के बाद के अहम बदलाव

  • Fragment के सेव किए गए स्टेटस को निजी लाइब्रेरी की स्थिति (कस्टम Parcelable क्लास) और डेवलपर की दी गई स्थिति के बीच बांट दिया गया है. इसे अब हमेशा Bundle में सेव किया जाता है. इससे यह तय किया जा सकता है कि फ़्रैगमेंट की स्थिति कहां से शुरू हो रही है.
  • FragmentManager.OnBackStackChangedListener इंटरफ़ेस को onBackStackChangeStarted और onBackStackChangeCommitted के दो अतिरिक्त कॉलबैक के साथ बड़ा किया गया है. इन्हें हर Fragment के साथ, फ़्रैगमेंट बैक स्टैक में जोड़े जाने या हटाने से ठीक पहले और लेन-देन के पूरा होने के बाद कॉल किया जाता है.
  • FragmentStrictMode ने नया WrongNestedHierarchyViolation जोड़ा है, जो यह पता लगाता है कि कोई चाइल्ड फ़्रैगमेंट कब उसके पैरंट के व्यू हैरारकी में नेस्ट किया गया है, लेकिन उसे पैरंट की childFragmentManager में नहीं जोड़ा गया.
  • Intent या IntentSender का इस्तेमाल करने वाले Fragment और FragmentManager एपीआई को अब @NonNull के साथ सही तरीके से एनोटेट किया गया है, ताकि शून्य वैल्यू पास न हो, क्योंकि शून्य वैल्यू हमेशा उन Android फ़्रेमवर्क एपीआई को क्रैश कर देगी जिनका इस्तेमाल इन तरीकों से किया जाता है.
  • DialogFragment अब requireComponentDialog() एपीआई के ज़रिए, ComponentDialog में मौजूद बुनियादी चीज़ों का ऐक्सेस देता है.
  • फ़्रैगमेंट अब लाइफ़साइकल 2.6.1 पर निर्भर करता है.
  • फ़्रैगमेंट अब SavedState 1.2.1 पर निर्भर करता है.
  • फ़्रैगमेंट अब ProfileInstaller 1.3.0 पर निर्भर करता है.
  • fragment-testing-manifest आर्टफ़ैक्ट, मेनिफ़ेस्ट एंट्री को फ़्रैगमेंट की जांच करने वाले बाकी कॉम्पोनेंट से अलग करता है. इसका मतलब है कि ये काम किए जा सकते हैं:

    debugImplementation("androidx.fragment:fragment-testing-manifest:X.Y.Z")
    androidTestImplementation("androidx.fragment:fragment-testing:X.Y.Z")
    

    fragment-testing और androidx.test के बीच वर्शन अलग-अलग होने की वजह से, टकराव से बचा जा सकता है

वर्शन 1.6.0-rc01

10 मई, 2023

androidx.fragment:fragment-*:1.6.0-rc01 रिलीज़ हो गया है. वर्शन 1.6.0-rc01 में ये कमिट हैं.

गड़बड़ियां ठीक की गईं

  • लगातार startActivityForResult के कई अनुरोध किए जाने पर, गलत अनुरोध कोड के साथ ActivityResult को भेजे जाने की समस्या को ठीक कर दिया गया है. (If0b9d, b/249519359)
  • उस समस्या को ठीक किया गया है जिसकी वजह से onBackStackChangeListener कॉलबैक, ऐसे ट्रांज़ैक्शन के लिए भेजे जा रहे थे जिनसे बैक स्टैक में बदलाव नहीं हुआ था. हालांकि, ऐसा उन ट्रांज़ैक्शन के साथ हो रहा था जो इन ट्रांज़ैक्शन में हो रहे थे. (I0eb5c, b/279306628)

वर्शन 1.6.0-beta01

19 अप्रैल, 2023

androidx.fragment:fragment-*:1.6.0-beta01 रिलीज़ हो गया है. वर्शन 1.6.0-beta01 में ये कमिट हैं.

गड़बड़ियां ठीक की गईं

  • टाइम आउट के साथ postponeEnterTransition का इस्तेमाल करने और उसके बाद स्थगित फ़्रैगमेंट को बदलने से, अब स्थगित फ़्रैगमेंट लीक नहीं होगा. (I2ec7d, b/276375110)
  • नए onBackStackChangeStarted और onBackStackChangeCommitted कॉलबैक, अब सिर्फ़ एक फ़्रैगमेंट को डिस्पैच करेंगे. भले ही, कई ट्रांज़ैक्शन में एक ही फ़्रैगमेंट हो. (Ic6b69)

वर्शन 1.6.0-alpha09

5 अप्रैल, 2023

androidx.fragment:fragment-*:1.6.0-alpha09 रिलीज़ हो गया है. वर्शन 1.6.0-alpha09 में ये कमिट हैं.

एपीआई में किए गए बदलाव

  • DialogFragment अब requireComponentDialog() एपीआई के ज़रिए, ComponentDialog में मौजूद बुनियादी चीज़ों का ऐक्सेस देता है. (I022e3, b/234274777)
  • फ़्रैगमेंट commitNow(), executePendingTransactions(), और popBackStackImmediate() एपीआई के बारे में @MainThread के साथ जानकारी दी गई है. इसका मतलब है कि रनटाइम के दौरान प्रोसेस न हो पाने के बजाय, मुख्य थ्रेड से कॉल न किए जाने पर, ये सभी बिल्ड गड़बड़ियां करेंगे. (Ic9665, b/236538905)

गड़बड़ियां ठीक की गईं

  • FragmentManager की गड़बड़ी को ठीक किया गया है, जहां एक ही फ़्रेम में सेव और वापस लाने से क्रैश हो सकता है. (Ib36af, b/246519668)
  • OnBackStackChangedListener onBackStackChangeStarted और onBackStackChangeCommitted कॉलबैक सिर्फ़ तब काम करते हैं, जब FragmentManager के बैक स्टैक को बदला जाता है. (I66055, b/274788957)

वर्शन 1.6.0-alpha08

22 मार्च, 2023

androidx.fragment:fragment-*:1.6.0-alpha08 रिलीज़ हो गया है. वर्शन 1.6.0-alpha08 में ये कमिट हैं.

व्यवहार में बदलाव

  • फ़्रैगमेंट कार्रवाइयां शुरू करने से पहले, OnBackStackChangedListener.onBackStackChangeCommited कॉलबैक के समय में बदलाव किया गया है, ताकि इसे एक्ज़ीक्यूट किया जा सके. इससे यह पक्का होता है कि कॉलबैक को कभी भी ऐसा फ़्रैगमेंट पास नहीं किया जाएगा जिसे डिटैच किया गया हो. (I66a76, b/273568280)

गड़बड़ियां ठीक की गईं

  • फ़्रैगमेंट 1.5.6 से: समस्या ठीक की गई है, अगर Lifecycle पहले से STARTED था और नतीजा पहले से उपलब्ध था, तो setFragmentResultListener में clearFragmentResultListener को कॉल करने की सुविधा काम नहीं करेगी. (If7458)

डिपेंडेंसी से जुड़े अपडेट

वर्शन 1.6.0-alpha07

8 मार्च, 2023

androidx.fragment:fragment-*:1.6.0-alpha07 रिलीज़ हो गया है. वर्शन 1.6.0-alpha07 में ये कमिट हैं.

गड़बड़ियां ठीक की गईं

  • फ़्रैगमेंट 1.5.6 से: उस समस्या को ठीक किया गया है जहां किसी भी फ़्रैगमेंट को हटाने पर, गतिविधि का मेन्यू अमान्य हो जाएगा. भले ही, उसने मेन्यू आइटम जोड़े हों या नहीं. (50f098, b/244336571)

वर्शन 1.6.0-alpha06

22 फ़रवरी, 2023

androidx.fragment:fragment-*:1.6.0-alpha06 रिलीज़ हो गया है. वर्शन 1.6.0-alpha06 में ये कमिट हैं.

व्यवहार में बदलाव

  • फ़्रैगमेंट को उनकी टारगेट की गई स्थितियों में ले जाने से पहले, FragmentManager के onBackStackChangedListener पर नया onBackStackChangedStarted कॉलबैक लागू होगा. (I34726)

वर्शन 1.6.0-alpha05

8 फ़रवरी, 2023

androidx.fragment:fragment-*:1.6.0-alpha05 रिलीज़ हो गया है. वर्शन 1.6.0-alpha05 में ये कमियां हैं.

नई सुविधाएं

  • FragmentManager.OnBackStackChagnedListener इंटरफ़ेस में अब दो अतिरिक्त कॉलबैक, onBackStackChangeStarted और onBackStackChangeCommitted उपलब्ध हैं. इनकी मदद से, ज़्यादा जानकारी पाई जा सकती है. साथ ही, FragmentManager में बैक स्टैक में बदलाव होने पर उन्हें कंट्रोल किया जा सकता है. (Ib7ce5, b/238686802)

एपीआई में किए गए बदलाव

  • Intent या IntentSender लेने वाले Fragment और FragmentManager एपीआई को अब @NonNull के साथ सही तरीके से एनोटेट किया गया है, ताकि शून्य वैल्यू पास न की जा सके. इसकी वजह यह है कि शून्य वैल्यू हमेशा उन Android फ़्रेमवर्क एपीआई को क्रैश कर देगी जिनका इस्तेमाल इन तरीकों से किया जाता है. (I06fd4)

वर्शन 1.6.0-alpha04

7 दिसंबर, 2022

androidx.fragment:fragment-*:1.6.0-alpha04 रिलीज़ हो गया है. वर्शन 1.6.0-alpha04 में ये कमियां हैं.

नई सुविधाएं

  • FragmentStrictMode ने नया WrongNestedHierarchyViolation जोड़ा है, जो यह पता लगाता है कि कोई चाइल्ड फ़्रैगमेंट कब उसके पैरंट के व्यू हैरारकी में नेस्ट किया गया है, लेकिन उसे पैरंट की childFragmentManager में नहीं जोड़ा गया. (I72521, b/249299268)

व्यवहार में बदलाव

  • फ़्रैगमेंट अब onAttach() से पहले अपनी SavedStateRegistry स्थिति को पहले जैसा करते हैं. इससे यह पक्का किया जाता है कि यह अपवर्ड लाइफ़साइकल के सभी तरीकों से उपलब्ध हो. (I1e2b1)

एपीआई में किए गए बदलाव

  • fragment-testing-manifest आर्टफ़ैक्ट, मेनिफ़ेस्ट एंट्री को फ़्रैगमेंट की जांच करने वाले बाकी कॉम्पोनेंट से अलग करता है. इसका मतलब है कि ये काम किए जा सकते हैं:
debugImplementation("androidx.fragment:fragment-testing-manifest:X.Y.Z")
androidTestImplementation("androidx.fragment:fragment-testing:X.Y.Z")

इससे fragment-testing और androidx.test के बीच वर्शन में अंतर की वजह से कॉन्फ़्लिक्ट से बचा जा सकता है.(I8e534, b/128612536)

गड़बड़ियां ठीक की गईं

  • फ़्रैगमेंट 1.5.5 से: फ़्रैगमेंट अब ViewModel की स्थिति को गलत तरीके से सेव नहीं करेंगे. ऐसा व्यू रजिस्ट्री के सेव किए गए व्यू के हिस्से के तौर पर होगा. (I10d2b, b/253546214)

वर्शन 1.6.0-alpha03

5 अक्टूबर, 2022

androidx.fragment:fragment:1.6.0-alpha03, androidx.fragment:fragment-ktx:1.6.0-alpha03, और androidx.fragment:fragment-testing:1.6.0-alpha03 रिलीज़ हुए हैं. वर्शन 1.6.0-alpha03 में ये कमियां हैं.

एपीआई में किए गए बदलाव

  • DialogFragment से शुरू होने वाली क्लास को onDismiss() की सेटिंग में बदलाव करने के बाद, अब Super को कॉल करना होगा. (I14798, b/238928865)

गड़बड़ियां ठीक की गईं

  • सेवा देने वाली नई कंपनी के कॉलबैक इंटरफ़ेस (OnConfigurationChangedProvider, OnMultiWindowModeChangedProvider, OnTrimMemoryProvider, OnPictureInPictureModeChangedProvider) के इंटिग्रेशन की वजह से होने वाले रिग्रेशन को ठीक किया गया है, ताकि यह पक्का किया जा सके कि फ़्रैगमेंट को हमेशा सही कॉलबैक मिलें. (I9b380,I34581, (I8dfe6, b/242570955),If9d6b,Id0096,I690b3,I2cba2)

वर्शन 1.6.0-alpha02

24 अगस्त, 2022

androidx.fragment:fragment:1.6.0-alpha02, androidx.fragment:fragment-ktx:1.6.0-alpha02, और androidx.fragment:fragment-testing:1.6.0-alpha02 रिलीज़ हुए हैं. वर्शन 1.6.0-alpha02 में ये कमियां हैं.

गड़बड़ियां ठीक की गईं

  • फ़्रैगमेंट 1.5.2 से: उस समस्या को ठीक किया गया है जहां popBackStack() और replace() लेन-देन को एक साथ चलाने पर, बाहर निकलने वाले फ़्रैगमेंट गलत Animation/Animator चला सकते हैं. (Ib1c07, b/214835303)

वर्शन 1.6.0-alpha01

27 जुलाई, 2022

androidx.fragment:fragment:1.6.0-alpha01, androidx.fragment:fragment-ktx:1.6.0-alpha01, और androidx.fragment:fragment-testing:1.6.0-alpha01 रिलीज़ हुए हैं. वर्शन 1.6.0-alpha01 में ये कमियां हैं.

व्यवहार में बदलाव

  • Fragment के सेव किए गए स्टेटस को निजी लाइब्रेरी की स्थिति (कस्टम Parcelable क्लास) और डेवलपर की दी गई स्थिति के बीच बांट दिया गया है. इसे अब हमेशा Bundle में सेव किया जाता है. इससे यह तय किया जा सकता है कि फ़्रैगमेंट की स्थिति कहां से शुरू हो रही है. (b/207158202)

गड़बड़ियां ठीक की गईं

  • फ़्रैगमेंट 1.5.1 से: DialogFragmentCallbacksDetector में रिग्रेशन से जुड़ी समस्या ठीक करें, जहां एजीपी 7.4 के साथ बंडल किए गए लिंट वर्शन का इस्तेमाल करने पर, लिंट क्रैश हो जाएगा. (b/237567009)

डिपेंडेंसी अपडेट

संस्‍करण 1.5

वर्शन 1.5.7

19 अप्रैल, 2023

androidx.fragment:fragment:1.5.7, androidx.fragment:fragment-ktx:1.5.7, और androidx.fragment:fragment-testing:1.5.7 रिलीज़ हुए हैं. वर्शन 1.5.7 में ये कमिट हैं.

गड़बड़ियां ठीक की गईं

  • टाइम आउट के साथ postponeEnterTransition का इस्तेमाल करने और उसके बाद स्थगित फ़्रैगमेंट को बदलने से, अब स्थगित फ़्रैगमेंट लीक नहीं होगा. (I2ec7d, b/276375110)

वर्शन 1.5.6

22 मार्च, 2023

androidx.fragment:fragment:1.5.6, androidx.fragment:fragment-ktx:1.5.6, और androidx.fragment:fragment-testing:1.5.6 रिलीज़ हुए हैं. वर्शन 1.5.6 में ये कमियां शामिल हैं.

गड़बड़ियां ठीक की गईं

  • उस समस्या को ठीक किया गया है जहां किसी भी फ़्रैगमेंट को हटाने से, गतिविधि का मेन्यू अमान्य हो जाएगा. भले ही, उसने मेन्यू आइटम जोड़े हों या नहीं. (50f098, b/244336571)
  • उस समस्या को ठीक कर दिया गया है जहां clearFragmentResultListener को setFragmentResultListener में कॉल करने की सुविधा काम नहीं करती, अगर Lifecycle पहले से STARTED होता और नतीजा पहले से उपलब्ध होता है. (If7458)

वर्शन 1.5.5

7 दिसंबर, 2022

androidx.fragment:fragment:1.5.5, androidx.fragment:fragment-ktx:1.5.5, और androidx.fragment:fragment-testing:1.5.5 रिलीज़ हुए हैं. वर्शन 1.5.5 में ये कमियां शामिल हैं.

गड़बड़ियां ठीक की गईं

  • फ़्रैगमेंट अब गलत तरीके से ViewModel स्थिति को व्यू रजिस्ट्री के सेव की गई स्थिति के हिस्से के तौर पर सेव नहीं करेंगे. (I10d2b, b/253546214)

वर्शन 1.5.4

24 अक्टूबर, 2022

androidx.fragment:fragment:1.5.4, androidx.fragment:fragment-ktx:1.5.4, और androidx.fragment:fragment-testing:1.5.4 रिलीज़ हुए हैं. वर्शन 1.5.4 में ये कमिट हैं.

गड़बड़ियां ठीक की गईं

  • उस गड़बड़ी को ठीक किया गया है जहां सेवा देने वाले के कॉलबैक इंटरफ़ेस (OnConfigurationChangedProvider, OnMultiWindowModeChangedProvider, OnTrimMemoryProvider, OnPictureInPictureModeChangedProvider) को लागू नहीं करने वाले होस्ट के साथ, पसंद के मुताबिक FragmentController का इस्तेमाल करने पर, चाइल्ड फ़्रैगमेंट को डिस्पैच नहीं किया जा सका. (I9b380)

वर्शन 1.5.3

21 सितंबर, 2022

androidx.fragment:fragment:1.5.3, androidx.fragment:fragment-ktx:1.5.3, और androidx.fragment:fragment-testing:1.5.3 रिलीज़ हुए हैं. वर्शन 1.5.3 में ये कमियां शामिल हैं.

गड़बड़ियां ठीक की गईं

  • उस गड़बड़ी को ठीक किया गया है जिसकी वजह से, बैक स्टैक पर मौजूद फ़्रैगमेंट onMultiWindowModeChanged(), onPictureInPictureModeChanged(), onLowMemory(), और onConfigurationChanged() कॉलबैक मिलते थे. (I34581, I8dfe6, b/242570955)
  • नेस्ट किए गए चाइल्ड फ़्रैगमेंट को अब कई onMultiWindowModeChanged(), onPictureInPictureModeChanged(), onLowMemory() या onConfigurationChanged() कॉलबैक नहीं मिलेंगे. (I690b3, Id0096, If9d6b, I2cba2)

संस्‍करण 1.5.2

10 अगस्त, 2022

androidx.fragment:fragment:1.5.2, androidx.fragment:fragment-ktx:1.5.2, और androidx.fragment:fragment-testing:1.5.2 रिलीज़ हुए हैं. वर्शन 1.5.2 में ये कमियां शामिल हैं.

गड़बड़ियां ठीक की गईं

  • उस समस्या को ठीक किया गया है जहां popBackStack() और replace() के साथ-साथ लेन-देन को एक साथ चलाया जाता है. इससे बाहर निकलने वाले फ़्रैगमेंट गलत Animation/Animator चला सकते हैं. (Ib1c07, b/214835303)

संस्‍करण 1.5.1

27 जुलाई, 2022

androidx.fragment:fragment:1.5.1, androidx.fragment:fragment-ktx:1.5.1, और androidx.fragment:fragment-testing:1.5.1 रिलीज़ हुए हैं. वर्शन 1.5.1 में ये कमियां शामिल हैं.

गड़बड़ियां ठीक की गईं

  • DialogFragmentCallbacksDetector में रिग्रेशन की समस्या ठीक करें, जहां एजीपी 7.4 के साथ बंडल किए गए लिंट वर्शन का इस्तेमाल करने से लिंट क्रैश हो जाएगा. (b/237567009)

डिपेंडेंसी अपडेट

वर्शन 1.5.0

29 जून, 2022

androidx.fragment:fragment:1.5.0, androidx.fragment:fragment-ktx:1.5.0, और androidx.fragment:fragment-testing:1.5.0 रिलीज़ हुए हैं. वर्शन 1.5.0 में ये कमियां शामिल हैं.

1.4.0 के बाद से हुए अहम बदलाव

  • CreationExtras इंटिग्रेशन - Fragment अब लाइफ़साइकल 2.5.0 के CreationExtras के ज़रिए, स्टेटलेस ViewModelProvider.Factory दे सकता है.
  • कॉम्पोनेंट डायलॉग इंटिग्रेशन - DialogFragment अब गतिविधि 1.5.0 के ज़रिए, ComponentDialog का इस्तेमाल डिफ़ॉल्ट डायलॉग के तौर पर onCreateDialog() से करता है.
  • सेव की गई इंस्टेंस स्टेट रीफ़ैक्टरिंग - फ़्रैगमेंट ने अपने इंस्टेंस की स्थिति को सेव करने का तरीका बदलना शुरू कर दिया है. इससे यह साफ़ तौर पर पता चलता है कि फ़्रैगमेंट और स्टेट के सोर्स में कौनसा स्टेटस सेव किया गया है. मौजूदा बदलावों में ये शामिल हैं:
    • FragmentManager, अब अपनी सेव की गई इंस्टेंस की स्थिति को सीधे कस्टम Parcelable में सेव करने के बजाय, Bundle में सेव करता है.
    • Fragment Result APIs से सेट किए गए ऐसे नतीजे जो अभी तक डिलीवर नहीं हुए हैं उन्हें अब FragmentManager की अंदरूनी स्थिति से अलग सेव किया जाएगा.
    • हर फ़्रैगमेंट से जुड़ी स्थिति को अब FragmentManager की अंदरूनी स्थिति से अलग सेव किया जाता है. इससे आप किसी व्यक्तिगत फ़्रैगमेंट से जुड़ी सेव की गई स्थिति की मात्रा को Fragment डीबग लॉगिंग में मौजूद यूनीक आईडी के साथ जोड़ सकते हैं.

अन्य बदलाव

  • FragmentStrictMode अब क्लास के नाम के साथ allowViolation() का इस्तेमाल करके, तीसरे पक्ष के निजी फ़्रैगमेंट को उल्लंघन के खास दंड से बचने की सुविधा देता है.
  • आपकी गतिविधि के ActionBar के लिए मेन्यू उपलब्ध कराने वाले फ़्रैगमेंट एपीआई को बंद कर दिया गया है. गतिविधि 1.4.0 में जोड़े गए MenuHost और MenuProvider एपीआई, टेस्ट करने लायक और लाइफ़साइकल की जानकारी से मिलता-जुलता एपीआई प्लैटफ़ॉर्म उपलब्ध कराते हैं, जिसका इस्तेमाल फ़्रैगमेंट को करना चाहिए.

वर्शन 1.5.0-rc01

11 मई, 2022

androidx.fragment:fragment:1.5.0-rc01, androidx.fragment:fragment-ktx:1.5.0-rc01, और androidx.fragment:fragment-testing:1.5.0-rc01 रिलीज़ हुए हैं. वर्शन 1.5.0-rc01 में ये कमिट शामिल हैं.

सेव किए गए इंस्टेंस की स्थिति की रीफ़ैक्टरिंग

  • हर फ़्रैगमेंट से जुड़ी स्थिति को अब FragmentManager की अंदरूनी स्थिति से अलग सेव किया जाता है. इससे आप किसी व्यक्तिगत फ़्रैगमेंट से जुड़ी सेव की गई स्थिति की मात्रा को फ़्रैगमेंट डीबग लॉगिंग में मौजूद यूनीक आईडी के साथ जोड़ सकते हैं. (a153e0, b/207158202)

वर्शन 1.5.0-beta01

20 अप्रैल, 2022

androidx.fragment:fragment:1.5.0-beta01, androidx.fragment:fragment-ktx:1.5.0-beta01, और androidx.fragment:fragment-testing:1.5.0-beta01 रिलीज़ हुए हैं. वर्शन 1.5.0-beta01 में ये कमिट हैं.

एपीआई में किए गए बदलाव

  • DialogFragment ने dismissNow का नया तरीका जोड़ा है. यह showNow फ़ंक्शन के साथ समानता के लिए, commitNow का इस्तेमाल करता है. ध्यान दें कि ऐसा करने से Dialog को तुरंत खारिज नहीं किया जाएगा. इससे सिर्फ़ FragmentManager की स्थिति को सिंक किया जाएगा. (I15c36, b/72644830)

सेव किए गए इंस्टेंस की स्थिति की रीफ़ैक्टरिंग

  • FragmentManager, अब अपनी सेव की गई इंस्टेंस की स्थिति को सीधे कस्टम Parcelable में सेव करने के बजाय, Bundle में सेव करता है. फ़्रैगमेंट में क्या सेव किया जा रहा है, इस बारे में ज़्यादा पारदर्शिता देने का यह पहला चरण है. (I93807, b/207158202)
  • फ़्रैगमेंट नतीजे के एपीआई से सेट किए गए ऐसे नतीजे जो अब तक डिलीवर नहीं हुए हैं उन्हें अब FragmentManager की अंदरूनी स्थिति से अलग सेव किया जाता है. इससे आपकी सेव की गई इंस्टेंस स्थिति के हिस्से के रूप में सेव किए जा रहे नतीजों के बारे में ज़्यादा पारदर्शिता मिलती है. (I6ea12, b/207158202)

वर्शन 1.5.0-alpha05

6 अप्रैल, 2022

androidx.fragment:fragment:1.5.0-alpha05, androidx.fragment:fragment-ktx:1.5.0-alpha05, और androidx.fragment:fragment-testing:1.5.0-alpha05 रिलीज़ हुए हैं. वर्शन 1.5.0-alpha05 में ये कमियां हैं.

एपीआई में किए गए बदलाव

वर्शन 1.5.0-alpha04

23 मार्च, 2022

androidx.fragment:fragment:1.5.0-alpha04, androidx.fragment:fragment-ktx:1.5.0-alpha04, और androidx.fragment:fragment-testing:1.5.0-alpha04 रिलीज़ हुए हैं. वर्शन 1.5.0-alpha04 में ये कमियां हैं.

एपीआई में किए गए बदलाव

  • आपकी गतिविधि के ActionBar के लिए मेन्यू उपलब्ध कराने वाले फ़्रैगमेंट एपीआई को बंद कर दिया गया है. ऐसा इसलिए, क्योंकि ये आपके फ़्रैगमेंट को आपकी गतिविधि के साथ जोड़ते हैं. इन्हें अलग से टेस्ट नहीं किया जा सकता. गतिविधि 1.4.0-alpha01 में जोड़े गए MenuHost और MenuProvider एपीआई, जांच के लिए इस्तेमाल होने वाला और लाइफ़साइकल की जानकारी से मिलता-जुलता एपीआई प्लैटफ़ॉर्म उपलब्ध कराते हैं, जिसका इस्तेमाल फ़्रैगमेंट को करना चाहिए. (I50a59, I20758)

गड़बड़ियां ठीक की गईं

  • अब SavedStateViewFactory में CreationExtras का इस्तेमाल किया जा सकता है. ऐसा तब भी किया जा सकता है, जब इसे SavedStateRegistryOwner के साथ शुरू किया गया हो. अगर अतिरिक्त वैल्यू दी गई हैं, तो शुरू किए गए आर्ग्युमेंट को अनदेखा कर दिया जाता है. (I6c43b, b/224844583)

वर्शन 1.5.0-alpha03

23 फ़रवरी, 2022

androidx.fragment:fragment:1.5.0-alpha03, androidx.fragment:fragment-ktx:1.5.0-alpha03, और androidx.fragment:fragment-testing:1.5.0-alpha03 रिलीज़ हुए हैं. वर्शन 1.5.0-alpha03 में ये कमियां हैं.

एपीआई में किए गए बदलाव

  • अब आप by viewModels() को CreationExtras पास कर सकते हैं और by activityViewModels() फ़ंक्शन. (Ibefe7, b/217601110)

व्यवहार में बदलाव

  • DialogFragment अब ComponentDialog को डिफ़ॉल्ट के तौर पर इस्तेमाल करता है onCreateDialog() ने डायलॉग दिखाया. (If3784, b/217618170)

वर्शन 1.5.0-alpha02

9 फ़रवरी, 2022

androidx.fragment:fragment:1.5.0-alpha02, androidx.fragment:fragment-ktx:1.5.0-alpha02, और androidx.fragment:fragment-testing:1.5.0-alpha02 रिलीज़ हुए हैं. वर्शन 1.5.0-alpha02 में ये कमियां हैं.

नई सुविधाएं

  • FragmentStrictMode अब क्लास के नाम के साथ allowViolation() का इस्तेमाल करके, तीसरे पक्ष के निजी फ़्रैगमेंट को उल्लंघन के खास दंड से बचने की सुविधा देता है. (I8f678)

वर्शन 1.5.0-alpha01

26 जनवरी, 2022

androidx.fragment:fragment:1.5.0-alpha01, androidx.fragment:fragment-ktx:1.5.0-alpha01, और androidx.fragment:fragment-testing:1.5.0-alpha01 रिलीज़ हुए हैं. वर्शन 1.5.0-alpha01 में ये कमियां हैं.

नई सुविधाएं

गड़बड़ियां ठीक की गईं

  • फ़्रैगमेंट 1.4.1 से: FragmentContainerView पर अब कोई गैर-कानूनी स्थिति नहीं मिलती है अपवाद के तौर पर, जब xml से जनरेट किए गए व्यू आईडी में नेगेटिव मान होते हैं. (Ic185b, b/213086140)
  • फ़्रैगमेंट 1.4.1 से: by viewModels() लेज़ी फ़ंक्शन के साथ कस्टम ownerProducer लैम्डा का इस्तेमाल करते समय, हमेशा फ़्रैगमेंट की फ़ैक्ट्री का इस्तेमाल करने के बजाय, पसंद के मुताबिक ViewModelProvider.Factory उपलब्ध न होने पर, अब वह मालिक के defaultViewModelProviderFactory का इस्तेमाल करेगा. (I56170, b/214106513)
  • Fragment के registerForActivityResult() कॉलबैक से, ViewModel को पहली बार ऐक्सेस करने पर होने वाले क्रैश को ठीक किया गया. (Iea2b3)

वर्शन 1.4

वर्शन 1.4.1

26 जनवरी, 2022

androidx.fragment:fragment:1.4.1, androidx.fragment:fragment-ktx:1.4.1, और androidx.fragment:fragment-testing:1.4.1 रिलीज़ हुए हैं. वर्शन 1.4.1 में ये कमियां शामिल हैं.

गड़बड़ियां ठीक की गईं

  • FragmentContainerView अब गैर-कानूनी राज्य नहीं देता है अपवाद के तौर पर, जब xml से जनरेट किए गए व्यू आईडी में नेगेटिव मान होते हैं. (Ic185b, b/213086140)
  • by viewModels() लेज़ी फ़ंक्शन के साथ, पसंद के मुताबिक ownerProducer लैम्डा का इस्तेमाल करते समय, यह उस मालिक के defaultViewModelProviderFactory का इस्तेमाल करेगा फ़्रैगमेंट के हमेशा इस्तेमाल होने के बजाय, ViewModelProvider.Factory उपलब्ध नहीं कराया जाता है फ़ैक्ट्री में किया गया था. (I56170, b/214106513)

वर्शन 1.4.0

17 नवंबर, 2021

androidx.fragment:fragment:1.4.0, androidx.fragment:fragment-ktx:1.4.0, और androidx.fragment:fragment-testing:1.4.0 रिलीज़ हुए हैं. वर्शन 1.4.0 में ये कमियां शामिल हैं.

1.3.0 के बाद से हुए अहम बदलाव

  • FragmentStrictMode एपीआई में रनटाइम की जांच की सुविधा मिलती है. इससे यह पुष्टि की जा सकती है कि आपका ऐप्लिकेशन या लाइब्रेरी, काम नहीं करने वाले फ़्रैगमेंट एपीआई को कॉल नहीं कर रही हैं. उल्लंघन का पता चलने पर, आपके पास लॉग मैसेज को प्रिंट करने, कस्टम लिसनर को ट्रिगर करने या अपने ऐप्लिकेशन को क्रैश करने का विकल्प होता है. setStrictModePolicy() के नए तरीके से, FragmentManager पर सेट की जा सकती है कि किस FragmentStrictMode.Policy की मदद से यह तय किया जा सकता है कि कौनसी जांच चालू की गई हैं और कौनसी “पेनल्टी” ट्रिगर हुई हैं. यह नीति उस FragmentManager पर लागू होती है. साथ ही, वह ऐसे चाइल्ड फ़्रैगमेंट मैनेजर पर भी लागू होती है जो अपनी यूनीक नीति सेट नहीं करते. फ़्रैगमेंट के लिए StrictMode देखें.
  • FragmentContainerView अब getFragment() तरीके की सुविधा देता है. इससे कंटेनर में हाल ही में जोड़े गए फ़्रैगमेंट की जानकारी मिलती है. यह FragmentContainerView के आईडी के साथ, findFragmentById() वाले ही लॉजिक का इस्तेमाल करता है, लेकिन इससे कॉल को चेन बनाने की अनुमति मिलती है.

    val navController = binding.container.getFragment<NavHostFragment>().navController
    
  • FragmentScenario अब Closeable को लागू करता है, ताकि आप इसे Kotlin के use तरीके से इस्तेमाल कर सकें या संसाधनों की मदद से आज़माएं.

  • जोड़े गए FragmentTransaction#TRANSIT_FRAGMENT_MATCH_ACTIVITY_{OPEN, CLOSE} अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है का इस्तेमाल करें.

  • FragmentManager.enableNewStateManager(boolean) के एक्सपेरिमेंट के लिए इस्तेमाल किया जा रहा एपीआई हटा दिया गया है. अब सिर्फ़ स्टेटस मैनेजर के तौर पर ही विकल्प उपलब्ध है.

एक से ज़्यादा बैक स्टैक

FragmentManager में ऐसे फ़्रैगमेंट ट्रांज़ैक्शन का बैक स्टैक मौजूद है जो addToBackStack() का इस्तेमाल करते हैं. इससे आपको इन लेन-देन की जानकारी देखने और पिछली स्थिति पर वापस जाने की सुविधा मिलती है. इसके लिए, फ़्रैगमेंट के साथ स्टेटस सेव करने का तरीका इस्तेमाल किया जाता है, ताकि आपके फ़्रैगमेंट सही तरीके से स्थिति को पहले जैसा कर सकें.

यह रिलीज़ तीन नए FragmentManager एपीआई उपलब्ध कराकर इन तरीकों से आगे बढ़ती है: saveBackStack(String name), restoreBackStack(String name), और clearBackStack(String name). FragmentTransaction की स्थिति और उन ट्रांज़ैक्शन में जोड़े गए हर फ़्रैगमेंट की स्थिति को सेव करने के लिए, ये एपीआई और addToBackStack() वाले name का इस्तेमाल करते हैं. साथ ही, इनकी मदद से ये ट्रांज़ैक्शन और उनके फ़्रैगमेंट उनकी स्थिति के हिसाब से पहले जैसे किए जा सकते हैं. इसकी मदद से, मौजूदा बैक स्टैक को सेव करके और सेव की गई बैक स्टैक को वापस लाया जा सकता है. इससे, एक से ज़्यादा बैक स्टैक के बीच बेहतर तरीके से 'स्वैप' किया जा सकता है.

saveBackStack(), popBackStack() की तरह ही काम करता है, क्योंकि यह एसिंक्रोनस है. इस वजह से, सभी फ़्रैगमेंट ट्रांज़ैक्शन उसी नाम पर वापस आ जाते हैं (‘पॉप किया गया’) और जोड़े गए किसी भी फ़्रैगमेंट को मिटाना और हटाना होता है. हालांकि, यह कुछ अहम मायनों में अलग है:

  • saveBackStack() हमेशा सभी के लिए उपलब्ध होता है.
  • popBackStack() के उलट, जो बैक स्टैक पर सभी लेन-देन की जानकारी दिखाता है. ऐसा तब होता है, जब पिछली स्टैक में बताया गया नाम न मिले या कोई नाम उपलब्ध न हो. ऐसे में, saveBackStack() उस स्थिति में addToBackStack() का इस्तेमाल करके फ़्रैगमेंट ट्रांज़ैक्शन नहीं करेगा जो शून्य नहीं है.
  • इन ट्रांज़ैक्शन की वजह से जोड़े गए सभी फ़्रैगमेंट की स्थिति सेव हो जाती है. इसका मतलब है कि हर फ़्रैगमेंट की व्यू स्थिति सेव की जाती है, हर फ़्रैगमेंट का onSaveInstanceState() कॉल किया जाता है और वह स्थिति वापस लाई जाती है. साथ ही, उन फ़्रैगमेंट से जुड़े किसी भी ViewModel इंस्टेंस को सेव रखा जाता है और onCleared() को उनके लिए कॉल नहीं किया जाता है.

saveBackStack() के साथ इस्तेमाल किए जा सकने वाले फ़्रैगमेंट ट्रांज़ैक्शन को कुछ शर्तों को पूरा करना होगा:

  • हर फ़्रैगमेंट ट्रांज़ैक्शन में setReorderingAllowed(true) का इस्तेमाल होना चाहिए, ताकि यह पक्का किया जा सके कि लेन-देन को सिंगल, ऐटमिक ऑपरेशन के तौर पर पहले जैसा किया जा सकता है.
  • सेव किए गए ट्रांज़ैक्शन का सेट अपने-आप में होना चाहिए. इसका मतलब है कि उन्हें ट्रांज़ैक्शन के उस सेट के बाहर के किसी भी फ़्रैगमेंट का साफ़ तौर पर रेफ़रंस नहीं देना चाहिए. इससे यह पक्का किया जा सकता है कि उन्हें बाद में कभी भी वापस लाया जा सके. इस बात से कोई फ़र्क़ नहीं पड़ता कि पिछले समय के दौरान पिछली गतिविधियों में क्या बदलाव किया गया है.
  • सेव किया गया कोई भी फ़्रैगमेंट, सेव किया गया फ़्रैगमेंट हो सकता है या उसके चाइल्ड फ़्रैगमेंट के ट्रांज़िटिव सेट में उसका रखरखाव किया जा सकता है. इससे यह पक्का होता है कि FragmentManager, सेव किए गए फ़्रैगमेंट के लिए कोई रेफ़रंस नहीं दिखाएगा.

saveBackStack(), restoreBackStack(), और clearBackStack() की तरह ही, सेव किए गए पिछले बैक स्टैक को वापस लाने या पहले से सेव की गई पिछली स्टैक को मिटाने वाले उपयोगकर्ताओं की तरह, ये दोनों सुविधाएं काम नहीं करतीं. ऐसा तब होता है, जब आपने saveBackStack() को इसी नाम से पहले कॉल नहीं किया हो.

ज़्यादा जानकारी के लिए, एक से ज़्यादा बैक स्टैक: पूरी जानकारी लेख पढ़ें.

वर्शन 1.4.0-rc01

3 नवंबर, 2021

androidx.fragment:fragment:1.4.0-rc01 को फ़्रैगमेंट 1.4.0-beta01 में बिना किसी बदलाव के रिलीज़ किया गया. वर्शन 1.4.0-rc01 में ये कमिट शामिल हैं.

वर्शन 1.4.0-beta01

27 अक्टूबर, 2021

androidx.fragment:fragment:1.4.0-beta01, androidx.fragment:fragment-ktx:1.4.0-beta01, और androidx.fragment:fragment-testing:1.4.0-beta01 रिलीज़ हुए हैं. वर्शन 1.4.0-beta01 में ये कमिट हैं.

गड़बड़ियां ठीक की गईं

  • पैरंट फ़्रैगमेंट अब onHiddenChanged() को भेज देंगे अपना कॉलबैक लॉन्च करने से पहले, अपने पूरे हैरारकी को ट्रैक कर सकते हैं. (Iedc20, b/77504618)
  • यहां से जाने पर कीबोर्ड अपने-आप बंद हो जाएगा खुले कीबोर्ड वाला फ़्रैगमेंट, जिससे रिसाइकलर व्यू वाला फ़्रैगमेंट मिलता है. (I8b842, b/196852211)
  • DialogFragment अब इस्तेमाल करता है सभी लेन-देन के लिए setReorderingAllowed(true) यह show(), showNow() को कॉल करने पर बनाया गया है, या dismiss(). (Ie2c14)
  • DetachAndAttachFragmentInSameFragmentTransaction की बहुत लंबी लिंट चेतावनी को कम करके DetachAndAttachSameFragment कर दिया गया है. (e9eca3)

वर्शन 1.4.0-alpha10

29 सितंबर, 2021

androidx.fragment:fragment:1.4.0-alpha10, androidx.fragment:fragment-ktx:1.4.0-alpha10, और androidx.fragment:fragment-testing:1.4.0-alpha10 रिलीज़ हुए हैं. वर्शन 1.4.0-alpha10 में ये कमियां हैं.

लिंट

  • एक ही FragmentTransaction में एक ही Fragment पर detach() और attach(), दोनों को कॉल करने का पता लगाने के लिए DetachAndAttachFragmentInSameFragmentTransaction लिंट चेतावनी जोड़ी गई - क्योंकि एक ही लेन-देन में ये पूरक कार्रवाइयां एक-दूसरे को रद्द कर देती हैं, इसलिए इन्हें अलग-अलग लेन-देन में बांटा जाना चाहिए, ताकि असल में कुछ भी किया जा सके. (aosp/1832956, b/200867930)
  • MenuHost के addMenuProvider एपीआई का इस्तेमाल करते समय, फ़्रैगमेंट व्यू लाइफ़साइकल में फ़्रैगमेंट व्यू लाइफ़साइकल में FragmentAddMenuProvider लिंट गड़बड़ी जोड़ी गई. (aosp/1830457, b/200326272)

दस्तावेज़ से जुड़े अपडेट

  • एपीआई बंद करने के मैसेज को ज़्यादा जानकारी के साथ बड़ा कर दिया गया है. फ़िलहाल, इसे startActivityForResult, startIntentSenderForResult, onActivityResult, requestPermissions, और onRequestPermissionsResult नाम के एपीआई Activity नतीजे एपीआई मैनेज करते हैं. (cce80f)
  • Fragment और DialogFragment, दोनों के लिए onActivityCreated() का इस्तेमाल बंद होने के मैसेज को ज़्यादा जानकारी के साथ बड़ा कर दिया गया है. (224db4)

वर्शन 1.4.0-alpha09

15 सितंबर, 2021

androidx.fragment:fragment:1.4.0-alpha09, androidx.fragment:fragment-ktx:1.4.0-alpha09, और androidx.fragment:fragment-testing:1.4.0-alpha09 रिलीज़ हुए हैं. वर्शन 1.4.0-alpha09 में ये कमियां हैं.

नई सुविधाएं

  • अब clearBackStack(name) को कॉल किया जा सकता है saveBackStack(name) में पहले से सेव किए गए स्टेटस को मिटाएं. (I70cd7)

एपीआई में किए गए बदलाव

  • FragmentContainerView क्लास को Kotlin में फिर से लिखा गया है यह पक्का करना कि getFragment फ़ंक्शन सही तरीके से काम करेगा अमान्य है. (If694a, b/189629145)
  • फ़्रैगमेंट सख्त मोड को अब Kotlin (I11767, b/199183506) में लिखा गया है

गड़बड़ियां ठीक की गईं

  • फ़्रैगमेंट की स्थिति में होने वाली समस्या को ठीक किया गया है जिसे setReorderingAllowed(true) के साथ जोड़ा गया और फिर बकाया लेन-देन करने से पहले तुरंत हटा दिया गया को सही तरीके से साफ़ नहीं किया जा सका. (I8ccb8)

वर्शन 1.4.0-alpha08

1 सितंबर, 2021

androidx.fragment:fragment:1.4.0-alpha08, androidx.fragment:fragment-ktx:1.4.0-alpha08, और androidx.fragment:fragment-testing:1.4.0-alpha08 रिलीज़ हुए हैं. वर्शन 1.4.0-alpha08 में ये कमियां हैं.

गड़बड़ियां ठीक की गईं

  • ग़ैर-ज़रूरी ब्रैकेट को बेहतर तरीके से मैनेज करने के लिए, UseRequireInsteadOfGet लिंट चेक को बेहतर बनाया गया. (I2d865)
  • अतिरिक्त किनारे के केस को मैनेज करने के लिए, UseGetLayoutInflater लिंट चेक को बेहतर बनाया गया. (Ie5423)

वर्शन 1.4.0-alpha07

18 अगस्त, 2021

androidx.fragment:fragment:1.4.0-alpha07, androidx.fragment:fragment-ktx:1.4.0-alpha07, और androidx.fragment:fragment-testing:1.4.0-alpha07 रिलीज़ हुए हैं. इनमें कोई खास बदलाव नहीं हुआ है. वर्शन 1.4.0-alpha07 में ये कमिट हैं.

वर्शन 1.4.0-alpha06

4 अगस्त, 2021

androidx.fragment:fragment:1.4.0-alpha06, androidx.fragment:fragment-ktx:1.4.0-alpha06, और androidx.fragment:fragment-testing:1.4.0-alpha06 रिलीज़ हुए हैं. वर्शन 1.4.0-alpha06 में ये कमियां हैं.

गड़बड़ियां ठीक की गईं

  • एक से ज़्यादा बैक अप से जुड़ी समस्या को ठीक किया गया बैक स्टैक के बीच तेज़ी से स्वैप करने पर स्टैक जो IllegalStateException के तौर पर दिखेगा FragmentTransaction या दिखने वाले फ़्रैगमेंट की दूसरी कॉपी मिलेगी. (I9039f)
  • उस समस्या को ठीक किया गया जिसकी वजह से FragmentManager पहले से सेव की गई स्थिति की कॉपी बनेगी saveBackStack() के ज़रिए, भले ही उस राज्य में यह पुनर्स्थापित. (Ied212)
  • dismissAllowingStateLoss() तरीका आपके कॉल करने पर DialogFragment में से DialogFragment क्रैश नहीं होता विशेष रूप से जोड़ते समय स्थिति को सेव करने के बाद Dialogफ़्रैगमेंट को, show(FragmentTransaction, String) तरीका. (I84422)

वर्शन 1.4.0-alpha05

21 जुलाई, 2021

androidx.fragment:fragment:1.4.0-alpha05, androidx.fragment:fragment-ktx:1.4.0-alpha05, और androidx.fragment:fragment-testing:1.4.0-alpha05 रिलीज़ हुए हैं. वर्शन 1.4.0-alpha05 में ये कमियां हैं.

गड़बड़ियां ठीक की गईं

  • फ़्रैगमेंट 1.3.6 से: रूट व्यू में transitionGroup=”true” सेट होने पर, hide() का इस्तेमाल करते समय फ़्रैगमेंट का व्यू अब GONE पर सही तरीके से सेट हो गया है. (aosp/1766655, b/193603427)
  • फ़्रैगमेंट 1.3.6 से: FragmentActivity अब हमेशा अनलॉक होता है लाइफ़साइकल में पहली कार्रवाई के तौर पर सेव की गई स्थिति कॉलबैक करता है, तो यह ओवरराइड हो जाता है. (I6db7a)

डिपेंडेंसी अपडेट

वर्शन 1.4.0-alpha04

30 जून, 2021

androidx.fragment:fragment:1.4.0-alpha04, androidx.fragment:fragment-ktx:1.4.0-alpha04, और androidx.fragment:fragment-testing:1.4.0-alpha04 रिलीज़ हुए हैं. वर्शन 1.4.0-alpha04 में ये कमियां हैं.

एपीआई में किए गए बदलाव

  • FragmentManager अब अपने राज्य को सेव करने के लिए, SavedStateRegistry का इस्तेमाल हुड के तहत करता है. FragmentController में saveAllState() और restoreSavedState() के तरीकों का इस्तेमाल भी बंद कर दिया गया है. अगर आप FragmentActivity के बाहर फ़्रैगमेंट होस्ट करने के लिए FragmentController का इस्तेमाल कर रहे हैं, तो आपके पास अपने FragmentHostCallbacks को लागू करना चाहिए SavedStateRegistryOwner. (Iba68e, b/188734238)

गड़बड़ियां ठीक की गईं

  • उस समस्या को ठीक कर दिया गया है जिसकी मदद से कई बैक सपोर्ट के लिए saveBackStack() एक ही समय में किए जाने पर स्टैक विफल हो जाएगा FragmentTransaction को चलाया जा रहा है, जिसमें replace() का इस्तेमाल हुआ. (I73137)
  • उस NullPointerException को ठीक किया गया सेव की गई किसी फ़ाइल को मैन्युअल तरीके से वापस लाने के बाद होता है पिछली गतिविधियों का स्टैक, जिनमें कई लेन-देन शामिल हैं इसके लिए restoreBackStack() API का इस्तेमाल करते समय एक से ज़्यादा बैक स्टैक की सुविधा मिलती है. यह समस्या भी ठीक हो गई है एक समस्या जिसकी वजह से setReorderingAllowed(true) सभी लेन-देन की जांच नहीं की जा रही थी. (I8c593)
  • उस समस्या को ठीक किया गया है जिसकी वजह से FragmentManager पहले से सेव की गई स्थिति को गलत तरीके से वापस लाना फ़्रैगमेंट को हटाए जाने के बाद भी FragmentManager से निकलने वाली वैल्यू से, लगातार विकास कर सकते हैं. (I1fb8e)

वर्शन 1.4.0-alpha03

16 जून, 2021

androidx.fragment:fragment:1.4.0-alpha03, androidx.fragment:fragment-ktx:1.4.0-alpha03, और androidx.fragment:fragment-testing:1.4.0-alpha03 रिलीज़ हुए हैं. वर्शन 1.4.0-alpha03 में ये कमियां हैं.

नई सुविधाएं

  • सभी फ़्रैगमेंट StrictMode Violation क्लास को अपडेट कर दिया गया है. इसमें उल्लंघन के बारे में ज़्यादा जानकारी देने वाले गड़बड़ी के मैसेज मौजूद हैं. (b/187871638)
    • FragmentTagUsageViolation में अब ज़्यादा चीज़ें शामिल हैं गड़बड़ी का पूरी जानकारी देने वाला मैसेज, जिसमें पैरंट कंटेनर को कंटेनर किया गया है जिसमें फ़्रैगमेंट जोड़ा जा सकता था. (Ic33a7)
    • WrongFragmentContainerViolation में अब और भी हैं गड़बड़ी की पूरी जानकारी वाला मैसेज जिसमें कंटेनर शामिल है फ़्रैगमेंट को जोड़ा जा रहा था. (Ib55f8)
    • TargetFragmentUsageViolation के लिए इस्तेमाल के उदाहरण की क्लास अब फ़्रैगमेंट को शामिल करने के लिए, गड़बड़ी के बारे में ज़्यादा जानकारी वाले मैसेज उपलब्ध हैं उल्लंघन करने वाली अन्य जानकारी हो सकती है. (Icc6ac)
    • RetainInstanceUsageViolation तक की क्लास अब गड़बड़ी के बारे में ज़्यादा जानकारी वाले मैसेज हैं, जिनमें फ़्रैगमेंट शामिल है जिसकी वजह से उल्लंघन हुआ है. (I6bd55)
    • FragmentReuseViolation में अब और भी हैं गड़बड़ी की पूरी जानकारी देने वाला मैसेज, जिसमें पिछला मैसेज भी शामिल हो फ़्रैगमेंट का आईडी. (I28ce2)
    • SetUserVisibleHintViolation में अब और भी हैं गड़बड़ी की पूरी जानकारी वाला मैसेज, जिसमें यह बताया गया हो कि उपयोगकर्ता दिखाई देने वाले संकेत पर सेट किया जा रहा था. (Ib2d5f)

व्यवहार में बदलाव

  • FragmentContainerView पर fitsSystemWindows को कॉल करने पर लगी पाबंदी को हटा दिया गया है - इससे आपका ऐप्लिकेशन क्रैश नहीं होगा. (6b8ddd, b/190622202)

गड़बड़ियां ठीक की गईं

  • फ़्रैगमेंट 1.3.5 से: aosp/1679887 के ज़रिए फ़्रैगमेंट 1.3.4 में, शेयर किए गए एलिमेंट ट्रांज़िशन में रिग्रेशन को ठीक किया गया है. फ़्रैगमेंट अब ट्रांज़िशन ग्रुप को सही तरीके से हैंडल करते हैं (ये सीधे तौर पर transitionGroup="true" से सेट किए जाते हैं या किसी transitionName या background के ज़रिए, किसी अन्य तरीके से सेट किए जाते हैं) और शेयर किए गए एलिमेंट अब IndexOutOfBoundsExceptions नहीं देंगे. (I16484, b/188679569, b/188969304)
  • आपके ऐसा करने पर, FragmentManager क्रैश नहीं होगा हटाने का तरीका छिपाएं. (I573dd, b/183634730)
  • OnCreateDialogIncorrectCallback लिंट जांच से ऐसा नहीं होगा टॉप लेवल वैरिएबल का आकलन करते समय क्रैश होने की अवधि ज़्यादा. (0a9efa, b/189967522)

वर्शन 1.4.0-alpha02

2 जून, 2021

androidx.fragment:fragment:1.4.0-alpha02, androidx.fragment:fragment-ktx:1.4.0-alpha02, और androidx.fragment:fragment-testing:1.4.0-alpha02 रिलीज़ हुए हैं. वर्शन 1.4.0-alpha02 में ये कमियां हैं.

नई सुविधाएं

  • FragmentManager के ज़रिए लॉग इन करने की सुविधा चालू होने पर, FragmentStrictMode अब हमेशा उल्लंघनों को लॉग करेगा. भले ही, मौजूदा सख्त मोड नीति का इस्तेमाल किया जा रहा हो. (I02df6, b/187872638)
  • FragmentStrictMode अब खास Fragment क्लास को सख्त मोड Violation से छूट देने का समर्थन करता है, जिससे वह क्लास किसी भी जुर्माने को बायपास कर सकती है. (Ib4e5d, b/184786736)

  • हर उल्लंघन के आधार पर स्ट्रक्चर की जानकारी जोड़ने के लिए, FragmentStrictMode Violation क्लास को बड़ा किया गया है. इससे आपको उल्लंघन करने वाले फ़्रैगमेंट (If5118, b/187871150) के साथ-साथ, उल्लंघन की असल वजह की पुष्टि करने में मदद मिलती है. हर Violation में यहां दी गई जानकारी शामिल होती है:

    • WrongFragmentContainerViolation में अब यह शामिल है वह ViewGroup जिसमें Fragment को जोड़ने की कोशिश की जा रही थी. (I83c75, b/187871150)
    • TargetFragmentUsageViolationको SetTargetFragmentUsageViolation, GetTargetFragmentUsageViolation, और GetTargetFragmentRequestCodeUsageViolation में SetTargetFragmentUsageViolation में टारगेट फ़्रैगमेंट और अनुरोध कोड शामिल है. (I741b4, b/187871150)
    • SetUserVisibleHintViolation में अब setUserVisibleHint() में दी गई बूलियन वैल्यू शामिल है. (I00585, b/187871150)
    • FragmentTagUsageViolation में अब यह शामिल है वह ViewGroup जिसमें <fragment> टैग, फ़्रैगमेंट को इनफ़्लेट करने की कोशिश कर रहा था.(I5dbbc, b/187871150)
    • FragmentReuseViolation में अब यूनीक आईडी मौजूद है. यह आईडी, Fragment के पिछले इंस्टेंस का यूनीक आईडी है. (I0544d, b/187871150)
    • RetainInstanceUsageViolation अब है ऐब्सट्रैक्ट बनाई गई है और इसमें दो सब-क्लास हैं, SetRetainInstanceUsageViolation और GetRetainInstanceUsageViolation, दोनों का प्रतिनिधित्व करता है मामले देखें. (Ic81e5, b/187871150)

व्यवहार में बदलाव

  • प्रोग्राम के हिसाब से या एक्सएमएल के ज़रिए, fitsSystemWindow एट्रिब्यूट को बदलने की कोशिश करते समय, FragmentContainerView अपवाद दिखाता है. इनसेट को हर फ़्रैगमेंट के व्यू से हैंडल किया जाना चाहिए. (Ie6651, b/187304502)

वर्शन 1.4.0-alpha01

18 मई, 2021

androidx.fragment:fragment:1.4.0-alpha01, androidx.fragment:fragment-ktx:1.4.0-alpha01, और androidx.fragment:fragment-testing:1.4.0-alpha01 रिलीज़ हुए हैं. वर्शन 1.4.0-alpha01 में ये कमियां हैं.

नई सुविधाएं

  • FragmentContainerView अब getFragment() तरीके की सुविधा देता है. इससे कंटेनर में हाल ही में जोड़े गए फ़्रैगमेंट की जानकारी मिलती है. यह FragmentContainerView के आईडी के साथ, findFragmentById() वाले ही लॉजिक का इस्तेमाल करता है, लेकिन इससे कॉल को चेन बनाने की अनुमति मिलती है. (Ife17a, b/162527857)

    val navController = binding.container.getFragment<NavHostFragment>().navController
    
  • जोड़े गए FragmentTransaction#TRANSIT_FRAGMENT_MATCH_ACTIVITY_{OPEN, CLOSE} अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है का इस्तेमाल करें. (I46652)

एक से ज़्यादा बैक स्टैक

FragmentManager में ऐसे फ़्रैगमेंट ट्रांज़ैक्शन का बैक स्टैक मौजूद है जो addToBackStack() का इस्तेमाल करते हैं. इससे आपको इन लेन-देन की जानकारी देखने और पिछली स्थिति पर वापस जाने की सुविधा मिलती है. इसके लिए, फ़्रैगमेंट के साथ स्टेटस सेव करने का तरीका इस्तेमाल किया जाता है, ताकि आपके फ़्रैगमेंट सही तरीके से स्थिति को पहले जैसा कर सकें.

इस रिलीज़ में, दो नए FragmentManager एपीआई उपलब्ध कराए गए हैं. इनमें saveBackStack(String name) और restoreBackStack(String name) शामिल हैं. इससे, इन तरीकों को ज़्यादा बेहतर तरीके से इस्तेमाल किया जा सकता है. FragmentTransaction की स्थिति और उन ट्रांज़ैक्शन में जोड़े गए हर फ़्रैगमेंट की स्थिति को सेव करने के लिए, ये एपीआई और addToBackStack() वाले name का इस्तेमाल करते हैं. साथ ही, इनकी मदद से ये ट्रांज़ैक्शन और उनके फ़्रैगमेंट उनकी स्थिति के हिसाब से पहले जैसे किए जा सकते हैं. इसकी मदद से, मौजूदा बैक स्टैक को सेव करके और सेव की गई बैक स्टैक को वापस लाया जा सकता है. इससे, एक से ज़्यादा बैक स्टैक के बीच बेहतर तरीके से 'स्वैप' किया जा सकता है.

saveBackStack(), popBackStack() की तरह ही काम करता है, क्योंकि यह एसिंक्रोनस है. इस वजह से, सभी फ़्रैगमेंट ट्रांज़ैक्शन उसी नाम पर वापस आ जाते हैं (‘पॉप किया गया’) और जोड़े गए किसी भी फ़्रैगमेंट को मिटाना और हटाना होता है. हालांकि, यह कुछ अहम मायनों में अलग है:

  • saveBackStack() हमेशा सभी के लिए उपलब्ध होता है.
  • popBackStack() के उलट, जो बैक स्टैक पर सभी लेन-देन की जानकारी दिखाता है. ऐसा तब होता है, जब पिछली स्टैक में बताया गया नाम न मिले या कोई नाम उपलब्ध न हो. ऐसे में, saveBackStack() उस स्थिति में addToBackStack() का इस्तेमाल करके फ़्रैगमेंट ट्रांज़ैक्शन नहीं करेगा जो शून्य नहीं है.
  • इन ट्रांज़ैक्शन की वजह से जोड़े गए सभी फ़्रैगमेंट की स्थिति सेव हो जाती है. इसका मतलब है कि हर फ़्रैगमेंट की व्यू स्थिति सेव की जाती है, हर फ़्रैगमेंट का onSaveInstanceState() कॉल किया जाता है और वह स्थिति वापस लाई जाती है. साथ ही, उन फ़्रैगमेंट से जुड़े किसी भी ViewModel इंस्टेंस को सेव रखा जाता है और onCleared() को उनके लिए कॉल नहीं किया जाता है.

saveBackStack() के साथ इस्तेमाल किए जा सकने वाले फ़्रैगमेंट ट्रांज़ैक्शन को कुछ शर्तों को पूरा करना होगा:

  • हर फ़्रैगमेंट ट्रांज़ैक्शन में setReorderingAllowed(true) का इस्तेमाल होना चाहिए, ताकि यह पक्का किया जा सके कि लेन-देन को सिंगल, ऐटमिक ऑपरेशन के तौर पर पहले जैसा किया जा सकता है.
  • सेव किए गए ट्रांज़ैक्शन का सेट अपने-आप में होना चाहिए. इसका मतलब है कि उन्हें ट्रांज़ैक्शन के उस सेट के बाहर के किसी भी फ़्रैगमेंट का साफ़ तौर पर रेफ़रंस नहीं देना चाहिए. इससे यह पक्का किया जा सकता है कि उन्हें बाद में कभी भी वापस लाया जा सके. इस बात से कोई फ़र्क़ नहीं पड़ता कि पिछले समय के दौरान पिछली गतिविधियों में क्या बदलाव किया गया है.
  • सेव किया गया कोई भी फ़्रैगमेंट, सेव किया गया फ़्रैगमेंट हो सकता है या उसके चाइल्ड फ़्रैगमेंट के ट्रांज़िटिव सेट में उसका रखरखाव किया जा सकता है. इससे यह पक्का होता है कि FragmentManager, सेव किए गए फ़्रैगमेंट के लिए कोई रेफ़रंस नहीं दिखाएगा.

saveBackStack() की तरह, अगर आपने पहले saveBackStack() को इसी नाम से कॉल नहीं किया है, तो restoreBackStack() कुछ नहीं करता है. (b/80029773)

फ़्रैगमेंट स्ट्रिक्टमोड

FragmentStrictMode एपीआई में रनटाइम की जांच की सुविधा मिलती है. इससे यह पुष्टि की जा सकती है कि आपका ऐप्लिकेशन या लाइब्रेरी, काम नहीं करने वाले फ़्रैगमेंट एपीआई को कॉल नहीं कर रही हैं. उल्लंघन का पता चलने पर, आपके पास लॉग मैसेज को प्रिंट करने, कस्टम लिसनर को ट्रिगर करने या अपने ऐप्लिकेशन को क्रैश करने का विकल्प होता है. setStrictModePolicy() के नए तरीके से, FragmentManager पर सेट की जा सकती है कि किस FragmentStrictMode.Policy की मदद से यह तय किया जा सकता है कि कौनसी जांच चालू की गई हैं और कौनसी “पेनल्टी” ट्रिगर हुई हैं. यह नीति उस FragmentManager पर लागू होती है. साथ ही, वह ऐसे चाइल्ड फ़्रैगमेंट मैनेजर पर भी लागू होती है जो अपनी यूनीक नीति सेट नहीं करते. (#123, #131, #150, b/143774122)

  • detectFragmentReuse() यह पता लगाता है कि पहले हटाए जा चुके Fragment इंस्टेंस को FragmentManager में फिर से जोड़ा जा रहा है या नहीं. किसी Fragment इंस्टेंस को मिटाए जाने और FragmentManager से हटाए जाने के बाद, आपको उससे इंटरैक्ट नहीं करना चाहिए या उसका रेफ़रंस नहीं रखना चाहिए. (#142, b/153738653)
  • detectFragmentTagUsage() यह पता लगाता है कि आपके लेआउट एक्सएमएल में <fragment> टैग का इस्तेमाल कब किया जा रहा है. अपने लेआउट के हिस्से के तौर पर, फ़्रैगमेंट को बढ़ाते समय, आपको हमेशा FragmentContainerView का इस्तेमाल करना चाहिए. (#141, b/153738235)
  • detectWrongFragmentContainer() यह पता लगाता है कि किसी कंटेनर में कोई ऐसा फ़्रैगमेंट जोड़ा गया है जो FragmentContainerView नहीं है. आपको अपने लेआउट में फ़्रैगमेंट के लिए, कंटेनर के तौर पर हमेशा FragmentContainerView का इस्तेमाल करना चाहिए. (#146, b/181137036)
  • detectRetainInstanceUsage() यह पता लगाता है कि काम नहीं करने वाले setRetainInstance() या getRetainInstance() एपीआई का इस्तेमाल कब किया जाता है. (#140, b/153737954)
  • detectSetUserVisibleHint() यह पता लगाता है कि उस setUserVisibleHint() एपीआई का इस्तेमाल कब किया जाता है जो अब काम नहीं करता. (#136, b/153738974)
  • detectTargetFragmentUsage() यह पता लगाता है कि काम नहीं करने वाले setTargetFragment(), getTargetFragment() या getTargetRequestCode() एपीआई का इस्तेमाल कब किया जाता है. (#139, b/153737745)

एपीआई में किए गए बदलाव

नई लिंट जांच

  • UseGetLayoutInflater लिंट चेक, अब DialogFragment में LayoutInflater.from(Context) का इस्तेमाल करने पर चेतावनी देता है - आपको LayoutInflater के लिए सही वैल्यू पाने के लिए, हमेशा डायलॉग फ़्रैगमेंट के getLayoutInflater() तरीके का इस्तेमाल करना चाहिए. (#156, b/170781346)
  • DialogFragmentCallbacksDetector लिंट चेक अब DialogFragment के onCreateDialog() तरीके से setOnCancelListener या setOnDismissListener को कॉल करने पर चेतावनी देता है - इन लिसनर का मालिकाना हक DialogFragment के पास है और इन कॉलबैक को पाने के लिए आपको onCancel() और onDismiss() को बदलना होगा. (#171, b/181780047, b/187524311)

गड़बड़ियां ठीक की गईं

  • फ़्रैगमेंट 1.3.4 से: ViewModelProvider के साथ ViewTreeViewModelStoreOwner.get() एपीआई या फ़्रैगमेंट में viewModel() के Jetpack Compose तरीके का इस्तेमाल करने पर, फ़्रैगमेंट 1.3.3 में बताए गए रिग्रेशन को ठीक किया गया. अगर आपका फ़्रैगमेंट, getDefaultViewModelProviderFactory() को बदल देता है, तो इस्तेमाल के ये उदाहरण अब सही तरीके से आपके फ़्रैगमेंट से मिले ViewModelProvider.Factory का इस्तेमाल करते हैं. ऐसा इसलिए, क्योंकि @AndroidEntryPoint जानकारी वाले फ़्रैगमेंट, Hilt का इस्तेमाल करते समय ऐसा करते हैं. अगर इस तरीके को नहीं बदला जाता है, तो फ़्रैगमेंट के व्यू के साथ-साथ अपनी स्थिति को सेव करने और पहले जैसा करने वाला SavedStateViewModelFactory डिफ़ॉल्ट फ़ैक्ट्री के तौर पर बन जाता है. (I5cbfa, b/186097368)
  • फ़्रैगमेंट 1.3.4 से: एपीआई 29 पर FragmentContainerView का इस्तेमाल करते समय, इनसेट ये काम नहीं करेंगे BottomNavigationBar और FloatingActionButton इंस्टेंस की समस्याओं को ठीक करते हुए, अनिश्चित समय तक भेजें. (I1bb78, b/186012452)
  • फ़्रैगमेंट 1.3.4 से: अब फ़्रैगमेंट नतीजे से, पार्स किया जा सकने वाला अपना डेटा वापस लाया जा सकता है प्रक्रिया पूरी होने के बाद का बंडल. (I65932, b/187443158)
  • फ़्रैगमेंट 1.3.4 से: किसी ViewGroup पर शेयर किए गए एलिमेंट का ट्रांज़िशन करते समय, अगर ViewGroup में transitionGroup को 'गलत' पर सेट किया गया है, अब यह ठीक से काम करेगा ट्रांज़िशन है. (I99675)

बाहरी योगदान

  • FragmentScenario को Closeable लागू करने में मदद करने के लिए, simonchiller का धन्यवाद. (#121, b/143774122)
  • इस रिलीज़ में पूरा FragmentStrictMode एपीआई जोड़ने के लिए, simonschiller का धन्यवाद!
  • UseGetLayoutInflater लिंट चेक जोड़ने के लिए, tatocaster को धन्यवाद. (#156, b/170781346)
  • DialogFragmentCallbacksDetector लिंट चेक जोड़ने के लिए, tatocaster को धन्यवाद. (#171, b/181780047)

वर्शन 1.3

वर्शन 1.3.6

21 जुलाई, 2021

androidx.fragment:fragment:1.3.6, androidx.fragment:fragment-ktx:1.3.6, और androidx.fragment:fragment-testing:1.3.6 रिलीज़ हुए हैं. वर्शन 1.3.6 में ये कमियां शामिल हैं.

गड़बड़ियां ठीक की गईं

  • फ़्रैगमेंट 1.4.0-alpha03 से: ऐसा करने पर, FragmentManager अब क्रैश नहीं होगा हटाने का तरीका छिपाएं. (I573dd, b/183634730)
  • रूट व्यू में transitionGroup=”true” सेट होने पर, hide() का इस्तेमाल करते समय फ़्रैगमेंट का व्यू अब GONE पर सही तरीके से सेट है. (aosp/1766655, b/193603427)
  • FragmentActivity अब हमेशा अनलॉक होगा लाइफ़साइकल में पहली कार्रवाई के तौर पर सेव की गई स्थिति कॉलबैक करता है, तो यह ओवरराइड हो जाता है. (I6db7a)

डिपेंडेंसी अपडेट

वर्शन 1.3.5

16 जून, 2021

androidx.fragment:fragment:1.3.5, androidx.fragment:fragment-ktx:1.3.5, और androidx.fragment:fragment-testing:1.3.5 रिलीज़ हुए हैं. वर्शन 1.3.5 में ये कमियां शामिल हैं.

गड़बड़ियां ठीक की गईं

  • aosp/1679887 की मदद से, फ़्रैगमेंट 1.3.4 में शेयर किए गए एलिमेंट ट्रांज़िशन में रिग्रेशन को ठीक किया गया है. फ़्रैगमेंट अब ट्रांज़िशन ग्रुप को सही तरीके से हैंडल करते हैं (ये सीधे तौर पर transitionGroup="true" से सेट किए जाते हैं या किसी transitionName या background के ज़रिए, किसी अन्य तरीके से सेट किए जाते हैं) और शेयर किए गए एलिमेंट अब IndexOutOfBoundsExceptions नहीं देंगे. (I16484, b/188679569, b/188969304)

वर्शन 1.3.4

18 मई, 2021

androidx.fragment:fragment:1.3.4, androidx.fragment:fragment-ktx:1.3.4, और androidx.fragment:fragment-testing:1.3.4 रिलीज़ हुए हैं. वर्शन 1.3.4 में ये कमिट हैं.

गड़बड़ियां ठीक की गईं

  • ViewModelProvider के साथ ViewTreeViewModelStoreOwner.get() एपीआई का इस्तेमाल करने पर फ़्रैगमेंट 1.3.3 में आए रिग्रेशन या Hilt का इस्तेमाल करते समय फ़्रैगमेंट में viewModel() का Jetpack Compose तरीका इस्तेमाल करने पर, इस गड़बड़ी को ठीक किया गया है. अगर यह फ़्रैगमेंट getDefaultViewModelProviderFactory() को ओवरराइड करता है, तो इस्तेमाल के ये उदाहरण अब आपके फ़्रैगमेंट से मिले ViewModelProvider.Factory का सही तरीके से इस्तेमाल करते हैं (जैसा कि @AndroidEntryPoint व्याख्या किए गए फ़्रैगमेंट करते हैं). अगर इस तरीके को नहीं बदला जाता है, तो फ़्रैगमेंट के व्यू के साथ-साथ अपनी स्थिति को सेव करने और पहले जैसा करने वाला SavedStateViewModelFactory डिफ़ॉल्ट फ़ैक्ट्री के तौर पर बन जाता है. (I5cbfa, b/186097368)
  • एपीआई 29 पर FragmentContainerView का इस्तेमाल करते समय, इनसेट ये काम नहीं करेंगे BottomNavigationBar और FloatingActionButton इंस्टेंस की समस्याओं को ठीक करते हुए, अनिश्चित समय तक भेजें. (I1bb78, b/186012452)
  • अब आप फ़्रैगमेंट नतीजे से पार्स किया जा सकने वाला अपना डेटा वापस पा सकते हैं प्रक्रिया पूरी होने के बाद का बंडल. (I65932, b/187443158)
  • किसी ViewGroup पर शेयर्ड एलिमेंट का ट्रांज़िशन करते समय, अगर ViewGroup ने transitionGroup को 'गलत' पर सेट किया है, अब यह ठीक से काम करेगा ट्रांज़िशन है. (I99675)

वर्शन 1.3.3

21 अप्रैल, 2021

androidx.fragment:fragment:1.3.3, androidx.fragment:fragment-ktx:1.3.3, और androidx.fragment:fragment-testing:1.3.3 रिलीज़ हुए हैं. वर्शन 1.3.3 में ये कमिट हैं.

नई सुविधाएं

  • अब SavedStateViewModelFactory का इस्तेमाल किया जा सकता है जब SavedStateRegistryOwner के साथ इस्तेमाल किया जाता है, तो ViewTreeSavedStateRegistryOwner.get() का इस्तेमाल फ़्रैगमेंट का व्यू. (I21acf, b/181577191)

गड़बड़ियां ठीक की गईं

  • फ़्रैगमेंट 1.3.2 में पेश किए गए रिग्रेशन वाले रिग्रेशन को ठीक किया गया है. इसकी वजह से, FragmentTransaction पॉप-अप होने पर popEnter ऐनिमेशन नहीं चलेंगे, जैसे कि setPrimaryNavFragment ऑपरेशन शामिल होने पर, जैसे कि NavHostFragment के हिसाब से इस्तेमाल की जाने वाली कार्रवाई. (I38c87, b/183877426)
  • अब FragmentContainerView पक्का करता है कि हर Fragment को WindowInsets, यह पक्का करना कि हर फ़्रैगमेंट अब इनसेट का अलग से इस्तेमाल कर सके. (I63f68, b/172153900)
  • DialogFragment अब उन मामलों को सही तरीके से हैंडल करता है जिनमें चाइल्ड फ़्रैगमेंट को ऐसे कंटेनर में जोड़ा गया है जिसका आईडी आपकी कस्टम Dialog क्लास के कंटेनर के आईडी से मेल खाता है. इससे BottomSheetDialog जैसे डायलॉग के अंदर इस्तेमाल होने वाले आईडी का दोबारा इस्तेमाल करते समय, व्यू हैरारकी (व्यू और व्यू ग्रुप के लेआउट का क्रम) से जुड़ी समस्याओं को ठीक किया जाता है. (Ie6279, b/180021387)
  • FragmentManager.dump() अब सक्रिय फ़्रैगमेंट की सूची के पहले फ़्रैगमेंट को सही तरीके से इंडेंट करता है. (If5c33, b/183705451)

नए स्टेट मैनेजर की गड़बड़ियां ठीक की गईं

  • नया फ़्रैगमेंट स्टेट मैनेजर अब सही तरीके से एग्ज़िट को हैंडल करता है छुपाने की कार्रवाइयों वाले ट्रांज़िशन. (I9e4de, b/184830265)

वर्शन 1.3.2

24 मार्च, 2021

androidx.fragment:fragment:1.3.2, androidx.fragment:fragment-ktx:1.3.2, और androidx.fragment:fragment-testing:1.3.2 रिलीज़ हुए हैं. वर्शन 1.3.2 में ये कमियां शामिल हैं.

नए स्टेट मैनेजर की गड़बड़ियां ठीक की गईं

  • popBackStack() और commit(), दोनों कार्रवाइयां चलाते समय साथ में, पिछला ऑपरेशन अब सभी के लिए दिशा सेट करेगा कुछ पॉप ऐनिमेशन चलाने के बजाय ऐनिमेशन चलाएं और कुछ अन्य ऐनिमेशन. (I7072e, b/181142246)
  • शेयर किए गए एलिमेंट के क्रम में व्यू में अब ये चीज़ें नहीं होंगी शेयर किए गए एलिमेंट का ट्रांज़िशन करते समय, उनका ट्रांज़िशन नाम मिटा दिया गया है. (I4d4a6, b/179934757)

डिपेंडेंसी से जुड़े अपडेट

  • फ़्रैगमेंट अब गतिविधि 1.2.2 पर निर्भर करता है. इसमें फ़्रैगमेंट 1.3.1 या इसके बाद के वर्शन का इस्तेमाल करते समय, गतिविधि की InvalidFragmentVersionForActivityResult लिंट जांच से जुड़ी समस्या को ठीक किया जाता है.
  • फ़्रैगमेंट अब लाइफ़साइकल 2.3.1 पर निर्भर करता है.

वर्शन 1.3.1

10 मार्च, 2021

androidx.fragment:fragment:1.3.1, androidx.fragment:fragment-ktx:1.3.1, और androidx.fragment:fragment-testing:1.3.1 रिलीज़ हुए हैं. वर्शन 1.3.1 में ये कमियां शामिल हैं.

नई सुविधाएं

  • DialogFragment में मौजूद डायलॉग को अब ViewTree का ऐक्सेस मिल सकता है यह पक्का करना होगा कि ComposeView के साथ DialogFragment का इस्तेमाल किया जा सकता है. (Ib9290, b/180691023)

गड़बड़ियां ठीक की गईं

  • इसका इस्तेमाल करके, पहले से मौजूद RESUMED गतिविधि में फ़्रैगमेंट बढ़ाए गए कॉन्फ़िगरेशन के बाद, फ़्रैगमेंट कंटेनर व्यू को अब सही तरीके से दिखाया जाता है बदलें. (Ie14c8, b/180538371)
  • फ़्रैगमेंट के आखिर में अब कोई और } नहीं है toString() (I54705, b/177761088)
  • फ़्रैगमेंट ऐक्टिविटी में ओवरराइड किए गए मेथड अब सही तरीके से बुनियादी तरीका javaDoc (I736ce, b/139548782)
  • setFragmentResult और setFragmentResultListener के दस्तावेज़ ने अपने पैरामीटर दस्तावेज़ अपडेट कर दिए हैं ताकि यह पता चल सके कि वे अब स्वीकार नहीं करते शून्य (I990ba, b/178348386)

नए स्टेट मैनेजर की गड़बड़ियां ठीक की गईं

  • mFocusedView (Ib4e9e, b/179925887) की वजह से हुए फ़्रैगमेंट में मेमोरी लीक होने की समस्या को ठीक किया गया
  • फ़्रैगमेंट अब इनका इस्तेमाल करते समय onCreateOptionsMenu को सही तरीके से कॉल करते हैं लेन-देन दिखाएं/छिपाएं (I8bce8, b/180255554)
  • फ़्रैगमेंट के रखे जाने से पहले शुरू होने वाले ट्रांज़िशन वाले चाइल्ड फ़्रैगमेंट अब सही तरीके से पहुंच जाएंगे RESUMED (Ic11e6, b/180825150)
  • <fragment> टैग का इस्तेमाल करके बढ़ाए गए फ़्रैगमेंट अब हमेशा RESUMED (I452ac, (I9fa49) तक पहुंचो

डिपेंडेंसी से जुड़े अपडेट

वर्शन 1.3.0

10 फ़रवरी, 2021

androidx.fragment:fragment:1.3.0, androidx.fragment:fragment-ktx:1.3.0, और androidx.fragment:fragment-testing:1.3.0 रिलीज़ हुए हैं. वर्शन 1.3.0 में ये कमियां शामिल हैं.

01.2.0 से अब तक के बड़े बदलाव

  • नया स्टेट मैनेजर: FragmentManager के इंटरनल रीराइट में, लाइफ़साइकल इवेंट, ऐनिमेशन, और ट्रांज़िशन से जुड़ी कई समस्याओं को हल किया गया है. साथ ही, टारे गए फ़्रैगमेंट को हैंडल करने के तरीके से जुड़ी समस्याएं हल की गई हैं.
  • Activity नतीजे API इंटिग्रेशन: गतिविधि 1.2.0 में शुरू की गई ActivityResultRegistry API के लिए सहायता जोड़ी गई. इससे startActivityForResult()+onActivityResult() के साथ-साथ requestPermissions()+onRequestPermissionsResult() फ़्लो को मैनेज करने में मदद मिलेगी. साथ ही, इन फ़्लो की जांच करने के लिए हुक भी मिलेंगे. अपडेट किया गया किसी गतिविधि से नतीजा पाना देखें.

    • इस रिलीज़ में, अमान्य अनुरोध कोड से जुड़ी कई समस्याओं को ठीक किया गया है. साथ ही, अनुमति के अनुरोधों को भेजने से जुड़ी कई समस्याओं को ठीक किया गया है. इनकी वजह से, Activity नतीजे API (एपीआई) FragmentActivity के पिछले वर्शन पर काम नहीं करते. FragmentActivity या AppCompatActivity में ऐक्टिविटी रिज़ल्ट के एपीआई इस्तेमाल करने के लिए, आपको फ़्रैगमेंट 1.3.0 में अपग्रेड करना होगा.
  • फ़्रैगमेंट रिज़ल्ट एपीआई: FragmentManager पर नए एपीआई के ज़रिए, दो फ़्रैगमेंट के बीच नतीजे पास करने की सुविधा जोड़ी गई. यह नेविगेशन में हैरारकी वाले फ़्रैगमेंट (पैरंट/चाइल्ड), Dialogफ़्रैगमेंट, और फ़्रैगमेंट के लिए काम करता है. साथ ही, यह पक्का करता है कि कम से कम STARTED होने पर ही नतीजे आपके फ़्रैगमेंट पर भेजे जाएं. टारगेट फ़्रैगमेंट एपीआई की सुविधा बंद कर दी गई है, ताकि इन नए एपीआई का इस्तेमाल किया जा सके. फ़्रैगमेंट रिज़ल्ट एपीआई का इस्तेमाल करके, नतीजे पाना लेख पढ़ें.

  • FragmentOnAttachListener: FragmentActivity और Fragment पर onAttachFragment() कॉलबैक को रोक दिया गया है. ज़्यादा सुविधाजनक विकल्प देने के लिए एक नया FragmentOnAttachListener जोड़ा गया है. इससे onAttachFragment() का डेलिगेशन, अलग-अलग, जांच किए जा सकने वाले लिसनर और आपके चाइल्ड फ़्रैगमेंटमैनेजर के अलावा, फ़्रैगमेंट मैनेजर में लिसनर जोड़ने में सहायता कर सकता है.

  • FragmentScenario सुधार: fragment-testing आर्टफ़ैक्ट की FragmentScenario क्लास को Kotlin में फिर से लिखा गया है और इसमें कई सुधार किए गए हैं:

    • FragmentScenario, अब moveToState() को लागू करने के लिए setMaxLifecycle() का इस्तेमाल करता है, ताकि सभी एपीआई लेवल पर एक जैसा काम किया जा सके. साथ ही, बुनियादी ऐक्टिविटी से फ़्रैगमेंट की स्थिति को अलग किया जा सके.
    • FragmentScenario में अब पहली बार हर Lifecycle.State पर जाने से पहले, फ़्रैगमेंट की स्थिति का दावा करने के लिए, शुरुआती Lifecycle.State सेट किया जा सकता है.
    • अब onFragment के FragmentScenario एपीआई की जगह, Kotlin के बदलाव किए गए एक्सटेंशन के तरीके withFragment का एक विकल्प मौजूद है. इसकी मदद से, वैल्यू दी जा सकती है. खास तौर पर, यह दिए गए ब्लॉक में दिए गए अपवादों को फिर से लागू करता है.
  • ViewTree सहायता: Fragment अब लाइफ़साइकल 2.3.0 और SavedState 1.1.0 में जोड़े गए ViewTreeLifecycleOwner.get(View), ViewTreeViewModelStoreOwner.get(View), और ViewTreeSavedStateRegistryOwner एपीआई के साथ काम करता है, ताकि Fragment के अंदर View का इस्तेमाल करने पर, यह फ़्रैगमेंट को ViewModelStoreOwner के तौर पर वापस कर देगा. साथ ही, फ़्रैगमेंट के SavedStateRegistryOwner और LifecycleOwner का हिस्सा भी दिखाएगा.

  • TRANSIT_ ऐनिमेशन में बदलाव: फ़्रैगमेंट के डिफ़ॉल्ट इफ़ेक्ट, TRANSIT_FRAGMENT_OPEN, TRANSIT_FRAGMENT_CLOSE, और TRANSIT_FRAGMENT_FADE, अब Animation के बजाय Animator का इस्तेमाल करें. इन ऐनिमेटर को बनाने के लिए इस्तेमाल किए गए संसाधन अब निजी हैं.

  • setRetainInstance() का इस्तेमाल बंद किया गया: फ़्रैगमेंट पर setRetainInstance() तरीके का इस्तेमाल बंद कर दिया गया है. ViewModels की शुरुआत के साथ, डेवलपर के पास डेटा बनाए रखने के लिए एक खास एपीआई होता है, जिसे गतिविधियों, फ़्रैगमेंट, और नेविगेशन ग्राफ़ से जोड़ा जा सकता है. यह डेवलपर को सामान्य, बिना रखरखाव वाले फ़्रैगमेंट का इस्तेमाल करने और उस खास स्थिति को अलग बनाए रखने की अनुमति देता है जिसे वे अलग बनाए रखना चाहते हैं. साथ ही, यह लीक होने के सामान्य सोर्स से बचाता है और बनाए रखी गई स्थिति (जैसे कि ViewModel का कंस्ट्रक्टर और इसे मिलने वाले onCleared() कॉलबैक) के विनाश के लिए उपयोगी प्रॉपर्टी को बनाए रखता है.

  • ViewPager 1 अडैप्टर बंद होना: ViewPager2 1.0.0 के रिलीज़ होने के साथ, ViewPager के साथ इंटरैक्ट करने वाली FragmentPagerAdapter और FragmentStatePagerAdapter क्लास को बंद कर दिया गया है. ViewPager से ViewPager2 पर माइग्रेट करना देखें.

वर्शन 1.3.0-rc02

27 जनवरी, 2021

androidx.fragment:fragment:1.3.0-rc02, androidx.fragment:fragment-ktx:1.3.0-rc02, और androidx.fragment:fragment-testing:1.3.0-rc02 रिलीज़ हुए हैं. वर्शन 1.3.0-rc02 में ये कमिट हैं.

गड़बड़ियां ठीक की गईं

  • कॉन्फ़िगरेशन में बदलाव होने के बाद पैरंट DialogFragment, चाइल्ड DialogFragment के ऊपर दिखने की समस्या को ठीक कर दिया गया है; चाइल्ड डायलॉग फ़्रैगमेंट अब हमेशा पैरंट डायलॉग फ़्रैगमेंट के ऊपर दिखते हैं. (I30806, b/177439520)
  • Animation के साथ hide कार्रवाई करने पर होने वाली समस्या ठीक कर दी गई है इससे ऐनिमेशन के अंत में छिपे हुए फ़्रैगमेंट फ़्लैश होंगे. (I57e22, b/175417675)
  • व्यू हैरारकी से पहले, ट्रांज़िशन जोड़े गए फ़्रैगमेंट अब ठीक से RESUMED तक पहुंच गया है. (I1fc1d, b/177154873)

नए स्टेट मैनेजर की गड़बड़ियां ठीक की गईं

  • फ़्रैगमेंट का व्यू Lifecycle अब ऐसे मामलों को सही तरीके से हैंडल करता है जहां Lifecycle के CREATED तक पहुंचने से पहले फ़्रैगमेंट का व्यू खत्म हो जाता है. साथ ही, इसमें "कोई इवेंट शुरू नहीं हुआ" वाले अपवादों से बचा जाता है. (eda2bd, b/176138645)
  • Animator का इस्तेमाल करने वाले फ़्रैगमेंट अब सही क्रम में दिखते हैं FragmentContainerView. (Id9aa3, b/176089197)

वर्शन 1.3.0-rc01

16 दिसंबर, 2020

androidx.fragment:fragment:1.3.0-rc01, androidx.fragment:fragment-ktx:1.3.0-rc01, और androidx.fragment:fragment-testing:1.3.0-rc01 रिलीज़ हुए हैं. वर्शन 1.3.0-rc01 में ये कमिट हैं.

गड़बड़ियां ठीक की गईं

  • onPrepareOptionsMenu() अब उसी लॉजिक का पालन करता है जो onCreateOptionsMenu() और पैरंट फ़्रैगमेंट होने पर इसे कॉल नहीं किया जाता setMenuVisibility(false) को कॉल करता है. (Id7de8, b/173203654)

नए स्टेट मैनेजर की गड़बड़ियां ठीक की गईं

  • जोड़ते समय, लीक और विज़ुअल आर्टफ़ैक्ट को ठीक किया गया एक फ़्रैगमेंट, जिसके साथ Animation FragmentContainerView और फिर वह रुकावट डाल रहा हूँ एक पॉप ऑपरेशन होता है. (I952d8)
  • फ़्रैगमेंट के व्यू में दिखने वाली समस्या ठीक की गई दृश्य पदानुक्रम में बना रहता है, अगर इसे के दौरान बदला गया हो इसके onCreate() या onViewCreated() तरीके हैं. (I8a7d5)
  • फ़ोकस को अब फ़्रैगमेंट रूट व्यू पर सही तरीके से वापस लाया गया है, जब फिर से शुरू कर दिया जाएगा. (Ifc84b)
  • पॉप और बदले जाने वाले ऑपरेशन को एक ही फ़्रैगमेंट में मिलाया जा रहा है लेन-देन में अब सही ऐनिमेशन दिखेंगे (Ifd4e4, b/170328691)

वर्शन 1.3.0-beta02

2 दिसंबर, 2020

androidx.fragment:fragment:1.3.0-beta02, androidx.fragment:fragment-ktx:1.3.0-beta02, और androidx.fragment:fragment-testing:1.3.0-beta02 रिलीज़ हुए हैं. वर्शन 1.3.0-beta02 में ये कमिट हैं.

नई सुविधाएं

  • FragmentAction के लिए Kotlin 1.4 के फ़ंक्शनल इंटरफ़ेस का इस्तेमाल करके, सोर्स और बाइनरी कंपैटबिलिटी को बनाए रखते हुए, FragmentScenario को पूरी तरह से Kotlin में बदल दिया गया है. (I19d31)

व्यवहार में बदलाव

  • फ़्रैगमेंट कंटेनर व्यू, जो class या android:name एट्रिब्यूट का इस्तेमाल करके फ़्रैगमेंट को इनफ़्लेट नहीं करते, उन्हें अब FragmentActivity के बाहर इस्तेमाल किया जा सकता है. (आईडी4397, b/172266337)
  • किसी फ़्रैगमेंट के ज़्यादा से ज़्यादा लाइफ़साइकल को DESTROYED पर सेट करने की कोशिश करने पर, अब IllegalArgumentException (Ie7651, b/170765622) मिलेगा
  • DESTROYED स्थिति के साथ फ़्रैगमेंट स्थिति शुरू करने पर, अब IllegalArgumentException (I73590, b/170765622) मिलेगा

नए स्टेट मैनेजर की गड़बड़ियां ठीक की गईं

  • Animator या TRANSIT_FRAGMENT_ में से किसी एक विकल्प का इस्तेमाल करने वाले फ़्रैगमेंट ट्रांज़िशन में रुकावट डालने से, उस समस्या को ठीक किया गया है जहां व्यू अपनी आखिरी स्थिति तक नहीं पहुंच पाता. (I92426, b/169874632)
  • उस समस्या को ठीक कर दिया गया है जिसकी वजह से, Animation से बाहर निकलने वाले फ़्रैगमेंट, पूरी तरह खत्म नहीं हो सके. (I83d65)
  • ऐसे फ़्रैगमेंट बंद किए जा रहे हैं जिनका असर अब उलटा हो गया है इसे सही तरीके से रद्द करके फिर से शुरू करें. (I62226, b/167092035)
  • उस समस्या को ठीक किया गया है जिसकी वजह से hide() का एग्ज़िट Animator नहीं चल रहा था. (Id7ffe)
  • फ़्रैगमेंट अब सही तरीके से दिखते हैं, क्योंकि फ़िलहाल इन्हें टाला जाता है और ये तुरंत शुरू हो जाते हैं. (Ie713b, b/170022857)
  • ऐनिमेशन के दौरान फ़ोकस किए गए व्यू को हटाने वाले फ़्रैगमेंट, RESUMED (I38c65, b/172925703) पर पहुंचने के बाद डिटैच किए गए व्यू पर फ़ोकस को वापस लाने की कोशिश नहीं करेंगे

बाहरी योगदान

  • FragmentFactory अब अलग-अलग ClassLoader इंस्टेंस के लिए, फ़्रैगमेंट क्लास को अलग से कैश मेमोरी में सेव करता है. धन्यवाद साइमन शिलर! (#87, b/113886460)

वर्शन 1.3.0-beta01

1 अक्टूबर, 2020

androidx.fragment:fragment:1.3.0-beta01, androidx.fragment:fragment-ktx:1.3.0-beta01, और androidx.fragment:fragment-testing:1.3.0-beta01 रिलीज़ हुए हैं. वर्शन 1.3.0-beta01 में ये कमिट हैं.

नई सुविधाएं

  • setMaxLifecycle() अब Lifecycle स्थिति को INITIALIZING पर सेट करने का समर्थन करता है, जब तक कि फ़्रैगमेंट को CREATED में नहीं ले जाया जाता. (b/159662173)

एपीआई में किए गए बदलाव

  • Kotlin 1.4 (Id6471, b/165307851, b/165300826) का इस्तेमाल करने के लिए, androidx को अपग्रेड करें

व्यवहार में बदलाव

  • फ़्रैगमेंट रिसॉर्स फ़ाइलों को सही तरीके से 'निजी' के तौर पर सेट कर दिया गया है. (aosp/1425237)

गड़बड़ियां ठीक की गईं

  • <fragment> टैग का इस्तेमाल करके बढ़ाए गए फ़्रैगमेंट अब सही तरीके से काम करेंगे STARTED (I02f4c) पर जाने से पहले उनके व्यू को कंटेनर में जोड़े जाने तक इंतज़ार करें
  • अब दिखने वाले फ़्रैगमेंट और फिर setMaxLifecycle() से CREATED तक, अब अपने एग्ज़िट इफ़ेक्ट सही तरीके से चला रहे हैं. (b/165822335)
  • अलग किए गए ऐसे फ़्रैगमेंट को हटाने से, जिसे पिछली स्टैक में नहीं जोड़ा गया है, अब मेमोरी लीक नहीं होगी. निकलस अंसमान गिएर्ट्ज़ के सौजन्य से! (b/166489383)
  • चालू फ़्रैगमेंट में अब हमेशा शून्य के अलावा कोई दूसरा FragmentManager होगा. साथ ही, जिन फ़्रैगमेंट में शून्य नहीं है FragmentManager उन्हें हमेशा 'चालू' माना जाएगा. (aosp/1422346)
  • फ़्रैगमेंट के डिफ़ॉल्ट इफ़ेक्ट, TRANSIT_FRAGMENT_OPEN, TRANSIT_FRAGMENT_CLOSE, और TRANSIT_FRAGMENT_FADE अब Animation के बजाय Animator का इस्तेमाल करते हैं. (b/166155034)

नए स्टेट मैनेजर की गड़बड़ियां ठीक की गईं

  • फ़्रैगमेंट अब सही तरीके से अपने व्यू फ़ोकस स्थिति को वापस लाते हैं तुरंत ठीक कर सकते हैं. (Icc256)
  • ऐसे फ़्रैगमेंट जिनमें अब सिर्फ़ शेयर किए गए एलिमेंट का ट्रांज़िशन है अपने स्पेशल इफ़ेक्ट्स को सही तरह से पूरा कर सकते हैं, जिसका मतलब है कि वे असल में मूव करेंगे. उनकी आखिरी स्थिति (Iaebc7, b/166658128)
  • फ़्रैगमेंट व्यू अब कंटेनर से हमेशा हटा दिए जाते हैं पहले ही खत्म कर दिया जाता है. (Id5876)
  • नया राज्य मैनेजर अब लगातार एग्ज़िट को हटाता है फ़्रैगमेंट व्यू जोड़ें. (I41a6e)
  • फ़्रैगमेंट व्यू के दिखने की सेटिंग में होने वाले साफ़ तौर पर होने वाले बदलाव, अब नया स्टेट मैनेजर स्वीकार करता है. इसका मतलब है कि अगर ऐनिमेशन शुरू होने से पहले, फ़्रैगमेंट के किसी व्यू को INVISIBLE पर सेट किया जाता है, तो वह असल में नहीं दिखेगा. (b/164481490)
  • फ़्रैगमेंट अब Animations के बजाय Animators को प्राथमिकता देते हैं. इसका मतलब है कि दोनों फ़्रैगमेंट में सिर्फ़ Animator चलेगा और Animation को अनदेखा किया जाएगा. (b/167579557)
  • ऐनिमेशन दर्ज करते समय नए स्टेट मैनेजर से फ़्रैगमेंट फ़्लैश नहीं होते हैं. (b/163084315)

आम समस्या

नए स्टेट मैनेजर का इस्तेमाल करते समय, अगर पिछले फ़्रैगमेंट पर लौटने के बजाय खास इफ़ेक्ट डालने के दौरान back बटन दबाया जाता है, तो पुराने फ़्रैगमेंट को फिर से कभी नहीं जोड़ा जाता है. इसकी वजह से स्क्रीन खाली हो जाती है. (b/167259187, b/167092035, b/168442830)

वर्शन 1.3.0-alpha08

19 अगस्त, 2020

androidx.fragment:fragment:1.3.0-alpha08, androidx.fragment:fragment-ktx:1.3.0-alpha08, और androidx.fragment:fragment-testing:1.3.0-alpha08 रिलीज़ हुए हैं. वर्शन 1.3.0-alpha08 में ये कमियां हैं.

नया स्टेट मैनेजर

इस रिलीज़ में, FragmentManager के इंटरनल स्टेट मैनेजमेंट की एक बड़ी रीफ़ैक्टरिंग शामिल है. इससे लाइफ़साइकल के तरीकों, ऐनिमेशन, और ट्रांज़िशन के डिस्पैच और बाद में किए गए लेन-देन को मैनेज करने के तरीके पर असर पड़ता है. यह सुविधा डिफ़ॉल्ट रूप से चालू रहती है. ज़्यादा जानकारी के लिए, फ़्रैगमेंट: इंटरनल ब्लॉग पोस्ट को फिर से बनाना देखें. (b/139536619, b/147749580)

  • FragmentManager.enableNewStateManager(boolean) में एक्सपेरिमेंट के तौर पर उपलब्ध एपीआई का इस्तेमाल, यह कंट्रोल करने के लिए किया जा सकता है कि फ़्रैगमेंट मैनेजर, नए स्टेट मैनेजर का इस्तेमाल करता है या नहीं. (I7b6ee)

नीचे दी गई समस्याएं सिर्फ़ तब ठीक की जाती हैं, जब नए स्टेट मैनेजर का इस्तेमाल किया जा रहा है:

  • नया फ़्रैगमेंट शुरू होने से पहले, replace कार्रवाई का पिछला फ़्रैगमेंट अब सही तरीके से बंद हो गया है. (b/161654580)
  • फ़्रैगमेंट अब एक ही फ़्रैगमेंट पर एक से ज़्यादा प्रतिस्पर्धी ऐनिमेशन को रोक देते हैं. ऐसे मामलों में ऐसा नहीं किया जा सकता जहां Animation, सभी Transition इफ़ेक्ट को बदल देगा या किसी अलग फ़्रैगमेंट पर Animator और Transition, दोनों चलेंगे. (b/149569323)
  • डालने और बाहर निकलने वाले सभी फ़्रैगमेंट में से enterTransition और exitTranstion अब चलते हैं. यह सिर्फ़ आखिरी फ़्रैगमेंट और एग्ज़िट के पहले फ़्रैगमेंट को चलाने का काम करता है. (b/149344150)
  • रोके गए फ़्रैगमेंट अब CREATED स्थिति में नहीं अटकते हैं. इसके बजाय, वे दूसरे फ़्रैगमेंट के साथ STARTED पर चले जाते हैं. (b/129035555)
  • उस समस्या को ठीक किया गया है जिसकी वजह से FragmentManager, रीऑर्डर किए गए लेन-देन और बिना क्रम वाले लेन-देन को मिलाकर, सही तरीके से कार्रवाइयां नहीं करता था. (b/147297731)
  • फ़्रैगमेंट को एक साथ पॉप-अप करने से, बीच में आने वाले फ़्रैगमेंट कुछ समय के लिए नहीं दिखेंगे. (b/37140383)
  • onAttachFragment() कॉलबैक से findFragmentById() या findFragmentByTag() को कॉल करने पर, FragmentManager अब सही फ़्रैगमेंट दिखाता है. (b/153082833)
  • जब फ़्रैगमेंट खत्म होने की स्थिति में फ़्रैगमेंट की जगह फ़्रैगमेंट खत्म हो जाता है, तो यह onCreateView() को कॉल नहीं करता है. (b/143915710)
  • फ़्रेमवर्क Transition और AndroidX Transition इंस्टेंस को मिलाने की कोशिश करते समय दिखने वाले गड़बड़ी के मैसेज में, अब अमान्य ट्रांज़िशन के साथ फ़्रैगमेंट को शामिल किया गया है. (b/155574969)

व्यवहार में बदलाव

  • अब किसी फ़्रैगमेंट के onCreate() लाइफ़साइकल तरीके में, launch() को ActivityResultLauncher पर कॉल किया जा सकता है. (b/161464278)
  • onCreate() के बाद registerForActivityResult() को कॉल करने पर, एक अपवाद दिखता है. इससे पता चलता है कि कॉन्फ़िगरेशन में बदलाव होने के बाद, बिना किसी सूचना के नतीजे डिलीवर नहीं किए जा सकते. (b/162255449)
  • FragmentActivity अब FragmentManager की स्थिति को पहले जैसा करने के लिए, गतिविधि 1.2.0-alpha08 में पेश किए गए OnContextAvailableListener एपीआई का इस्तेमाल करता है. FragmentActivity की सब-क्लास में जोड़े गए सभी लिसनर इस लिसनर के बाद चलेंगे. (I513da)

गड़बड़ियां ठीक की गईं

  • startIntentSenderForResult() का इस्तेमाल करते समय पार हुआ ActivityOptions अब मान्य है. (b/162247961)

आम समस्या

  • नए स्टेट मैनेजर का इस्तेमाल करने पर, सीधे फ़्रैगमेंट के रूट व्यू को onViewCreated() के बाद और onResume() से पहले सेट करने पर, आपकी सेट की गई विज़िबिलिटी को FragmentManager से बदल दिया जाता है. इससे रूट व्यू कंट्रोल किया जाता है. वैकल्पिक हल के रूप में, आपको अपने फ़्रैगमेंट की दृश्यता बदलने के लिए हमेशा hide() और show() कार्रवाइयों का इस्तेमाल करना चाहिए. (b/164481490)

वर्शन 1.3.0-alpha07

22 जुलाई, 2020

androidx.fragment:fragment:1.3.0-alpha07, androidx.fragment:fragment-ktx:1.3.0-alpha07, और androidx.fragment:fragment-testing:1.3.0-alpha07 रिलीज़ हुए हैं. वर्शन 1.3.0-alpha07 में ये कमिट हैं.

नई सुविधाएं

  • FragmentScenario में अब नाम का पहला अक्षर सेट किया जा सकता है CREATED, STARTED या RESUMED की लाइफ़साइकल की स्थिति फ़्रैगमेंट को हमेशा RESUMED पर ले जाने के बजाय राज्य. (b/159662750)
  • Kotlin के बदलाव किए गए एक्सटेंशन के तरीके withFragment के रूप में, onFragment के FragmentScenario एपीआई में एक विकल्प जोड़ा गया. इससे आपको वैल्यू दिखाने में मदद मिलती है. खास तौर पर, यह दिए गए ब्लॉक में दिए गए अपवादों को फिर से लागू करता है. (b/158697631)

व्यवहार में बदलाव

  • FragmentScenario, अब moveToState() को लागू करने के लिए setMaxLifecycle() का इस्तेमाल करता है, ताकि सभी एपीआई लेवल पर एक जैसा काम किया जा सके. साथ ही, बुनियादी ऐक्टिविटी से फ़्रैगमेंट की स्थिति को अलग किया जा सके. (b/156527405)
  • ViewTreeSavedStateRegistryOwner से मिला SavedStateRegistryOwner, अब फ़्रैगमेंट व्यू के लाइफ़साइकल से जुड़ा है. इससे यह पक्का होता है कि इसकी स्थिति को सेव कर लिया गया है और यह फ़्रैगमेंट के व्यू के साथ-साथ ही वापस भी आ गया है. (b/158503763)

गड़बड़ियां ठीक की गईं

  • फ़्रैगमेंट अब ViewCompat.requestApplyInsets() को कॉल करने से पहले, फ़्रैगमेंट के व्यू के अटैच होने का इंतज़ार करते हैं. ऐसा उन मामलों में नहीं किया जा सकता जहां इनसेट अनुरोध को छोड़ा गया हो. (b/158095749)
  • clearFragmentResultListener को कॉल करने से अब लाइफ़साइकल ऑब्ज़र्वर. (b/159274993)

वर्शन 1.3.0-alpha06

10 जून, 2020

androidx.fragment:fragment:1.3.0-alpha06, androidx.fragment:fragment-ktx:1.3.0-alpha06, और androidx.fragment:fragment-testing:1.3.0-alpha06 रिलीज़ हुए हैं. वर्शन 1.3.0-alpha06 में ये कमियां हैं.

नई सुविधाएं

  • onAttachFragment() कॉलबैक चालू है FragmentActivity और Fragment के इस्तेमाल पर रोक लगा दी गई है. एक नया FragmentOnAttachListener इसमें जोड़ा गया है एक और सुविधाजनक विकल्प देकर, लिसनर को अलग-अलग करने के लिए, onAttachFragment() का और फ़्रैगमेंट मैनेजर्स में लिसनर जोड़ने के लिए सहायता पाएं आपके डायरेक्ट चाइल्ड फ़्रैगमेंट मैनेजर के अलावा कोई और. (I06d3d)

गड़बड़ियां ठीक की गईं

  • पैरंट फ़्रैगमेंट अब अपने चाइल्ड फ़्रैगमेंट से पहले, व्यू की स्थिति को पहले जैसा कर सकते हैं. कॉन्फ़िगरेशन में बदलाव होने के बाद, जब DialogFragment दूसरे DialogFragment को चाइल्ड फ़्रैगमेंट के तौर पर दिखाएगा, तब विज़ुअल ऑर्डर की समस्या को ठीक किया जा सकता है. (b/157195715)
  • उस समस्या को ठीक किया गया है जिसकी वजह से UseRequireInsteadOfGet लिंट जांच, ?. और !! ऑपरेटर के चेन इस्तेमाल को सही तरीके से हैंडल नहीं कर पाती. (b/157677616)

वर्शन 1.3.0-alpha05

20 मई, 2020

androidx.fragment:fragment:1.3.0-alpha05, androidx.fragment:fragment-ktx:1.3.0-alpha05, और androidx.fragment:fragment-testing:1.3.0-alpha05 रिलीज़ हुए हैं. वर्शन 1.3.0-alpha05 में ये कमियां हैं.

नई सुविधाएं

एपीआई में किए गए बदलाव

  • setFragmentResult() और setFragmentResultListener() एपीआई अब शून्य के अलावा Bundle और FragmentResultListener का इस्तेमाल करते हैं. पहले से सेट किए गए नतीजे या लिसनर को साफ़ तौर पर मिटाने के लिए, clearFragmentResult() और clearFragmentResultListener() के नए तरीके इस्तेमाल करें. (b/155416778)
  • लैम्डा लेने वाले setFragmentResultListener() Kotlin एक्सटेंशन को अब inline के तौर पर मार्क किया गया है. (b/155323404)

व्यवहार में बदलाव

  • Fragment पर पहले बंद startActivityForResult(), startIntentSenderForResult(), और requestPermissions अब आंतरिक तौर पर ActivityResultRegistry का इस्तेमाल करते हैं. इसलिए, उन एपीआई का इस्तेमाल करते समय, आपके अनुरोध कोड के लिए सिर्फ़ लोअर बिट (0xFFFF से कम) के इस्तेमाल पर लगी पाबंदी को हटाया जाता है. (b/155518741)

दस्तावेज़ से जुड़े अपडेट

  • Fragment(@LayoutRes int) और DialogFragment(@LayoutRes int) कंस्ट्रक्टर के लिए दस्तावेज़ों का दायरा बढ़ाया गया, ताकि यह साफ़ किया जा सके कि डिफ़ॉल्ट FragmentFactory का इस्तेमाल करने पर, उन्हें आपकी सब-क्लास के बिना आर्ग्युमेंट कंस्ट्रक्टर से कॉल किया जाना चाहिए. (b/153042497)

वर्शन 1.3.0-alpha04

29 अप्रैल, 2020

androidx.fragment:fragment:1.3.0-alpha04, androidx.fragment:fragment-ktx:1.3.0-alpha04, और androidx.fragment:fragment-testing:1.3.0-alpha04 रिलीज़ हुए हैं. वर्शन 1.3.0-alpha04 में ये कमियां हैं.

नई सुविधाएं

  • नए एपीआई के ज़रिए FragmentManager पर दो फ़्रैगमेंट के बीच नतीजे पास करने की सुविधा जोड़ी गई. यह नेविगेशन में हैरारकी वाले फ़्रैगमेंट (पैरंट/चाइल्ड), Dialogफ़्रैगमेंट, और फ़्रैगमेंट के लिए काम करता है. साथ ही, यह पक्का करता है कि कम से कम STARTED होने पर ही नतीजे आपके फ़्रैगमेंट पर भेजे जाएं. (b/149787344)

एपीआई में किए गए बदलाव

  • टारगेट फ़्रैगमेंट एपीआई बंद कर दिए गए हैं. फ़्रैगमेंट के बीच डेटा पास करने के लिए, नए फ़्रैगमेंट नतीजे के एपीआई का इस्तेमाल करना चाहिए. (b/149787344)
  • फ़्रैगमेंट पर startActivityForResult()/onActivityResult() और requestPermissions()/onRequestPermissionsResult() एपीआई बंद कर दिए गए हैं. कृपया गतिविधि के नतीजे से जुड़े एपीआई का इस्तेमाल करें. (aosp/1290887)
  • गतिविधि 1.2.0-alpha04 से ब्रेकिंग बदलाव: prepareCall() तरीके का नाम बदलकर registerForActivityResult() कर दिया गया है. (aosp/1278717)

गड़बड़ियां ठीक की गईं

  • फ़्रैगमेंट के getViewLifecycleOwner() को onSaveInstanceState() को कॉल करने से पहले बंद कर दिया गया है. यह फ़्रैगमेंट की लाइफ़साइकल के व्यवहार की मिररिंग करता है. (b/154645875)
  • किसी फ़्रैगमेंट पर setMenuVisibility(false) को कॉल करने से, इसके चाइल्ड फ़्रैगमेंट से मिलने वाले मेन्यू की दृश्यता सही तरीके से बदल जाती है. (b/153593580)
  • FragmentContainerView के साथ DialogFragment के व्यू हैरारकी में फ़्रैगमेंट जोड़ने पर, illegalStateException को ठीक किया गया. (b/154366601)
  • किसी गतिविधि के बाहर आपके फ़्रैगमेंट होस्ट करते समय, फ़्रैगमेंट पर getDefaultViewModelProviderFactory() तरीका क्रैश नहीं होता है. (b/153762914)

वर्शन 1.3.0-alpha03

1 अप्रैल, 2020

androidx.fragment:fragment:1.3.0-alpha03, androidx.fragment:fragment-ktx:1.3.0-alpha03, और androidx.fragment:fragment-testing:1.3.0-alpha03 रिलीज़ हुए हैं. वर्शन 1.3.0-alpha03 में ये कमियां हैं.

एपीआई में किए गए बदलाव

  • Fragment पर prepareCall तरीके अब final हैं. (b/152439361)

गड़बड़ियां ठीक की गईं

  • BottomSheetDialogFragment का इस्तेमाल करते समय फ़्रैगमेंट 1.3.0-alpha02 में पेश किए गए रिग्रेशन को ठीक किया गया. (b/151652127, aosp/1263328, aosp/1265163)
  • कॉन्फ़िगरेशन में बदलाव के बाद, फ़्रैगमेंट से prepareCall का इस्तेमाल करने पर होने वाले क्रैश को ठीक किया गया. (b/152137004)
  • उस समस्या को ठीक किया गया है जहां setTargetFragment() का इस्तेमाल करते समय शेयर किए गए एलिमेंट और एग्ज़िट ट्रांज़िशन पर ध्यान नहीं दिया जाता. (b/152023196)
  • फ़्रैगमेंट 1.2.4 से: रखे गए फ़्रैगमेंट को अस्पष्ट बनाने की अनुमति देने के लिए, फ़्रैगमेंट ProGuard नियमों को अपडेट किया गया. (b/151605338)
  • फ़्रैगमेंट 1.2.4 की ओर से: DialogFragment क्लास पर FragmentLiveDataObserve लिंट नियम बंद किया गया, क्योंकि उनका लाइफ़साइकल और व्यू लाइफ़साइकल हमेशा सिंक में रहते हैं. इस वजह से, observe को कॉल करते समय this या viewLifecycleOwner का इस्तेमाल करना सुरक्षित रहता है. (b/151765086)

डिपेंडेंसी में बदलाव

  • फ़्रैगमेंट, गतिविधि 1.2.0-alpha03 पर निर्भर करते हैं. इसमें गतिविधि 1.2.0-alpha02 के एपीआई के ज़रिए, ऐक्टिविटी रिज़ल्ट में अहम सुधार किए गए थे.

वर्शन 1.3.0-alpha02

18 मार्च, 2020

androidx.fragment:fragment:1.3.0-alpha02, androidx.fragment:fragment-ktx:1.3.0-alpha02, और androidx.fragment:fragment-testing:1.3.0-alpha02 रिलीज़ हुए हैं. वर्शन 1.3.0-alpha02 में ये कमियां हैं.

नई सुविधाएं

  • ऐक्टिविटी 1.2.0-alpha02 में ActivityResultRegistry एपीआई के साथ काम करने की सुविधा जोड़ी गई. इससे आपके फ़्रैगमेंट में बिना बदलाव किए तरीकों में बदलाव किए बिना startActivityForResult()+onActivityResult() और requestPermissions()+onRequestPermissionsResult() फ़्लो को मैनेज किया जा सकता है. साथ ही, इन फ़्लो की जांच करने के लिए भी हुक दिए जा सकते हैं. अपडेट किया गया किसी गतिविधि से नतीजा पाना देखें. (b/125158199)

एपीआई में किए गए बदलाव

  • DialogFragment अब एक कंस्ट्रक्टर उपलब्ध कराता है, जो @LayoutRes को लेता है. यह लेआउट बताता है कि onCreateView() को डिफ़ॉल्ट रूप से इनफ़्लेट होना चाहिए. (b/150327080)
  • onActivityCreated() तरीके का इस्तेमाल अब नहीं किया जा सकता. फ़्रैगमेंट के व्यू को छूने वाला कोड onViewCreated() में किया जाना चाहिए (जिसे onActivityCreated() से ठीक पहले कॉल किया जाता है) और दूसरे शुरू करने वाला कोड onCreate() में होना चाहिए. खास तौर पर, गतिविधि के onCreate() पूरे होने पर कॉलबैक पाने के लिए, गतिविधि के Lifecycle पर onAttach() में एक LifeCycleObserver रजिस्टर होना चाहिए. साथ ही, onCreate() कॉलबैक मिलने के बाद, इसे हटा दिया जाना चाहिए. (b/144309266)

गड़बड़ियां ठीक की गईं

  • फ़्रैगमेंट 1.2.3 से: DialogFragment में उस गड़बड़ी को ठीक किया गया जिसकी वजह से onCreateDialog() के अंदर से, getLayoutInflater() को कॉल करते समय StackOverflowError आया था. (b/117894767, aosp/1258664)
  • फ़्रैगमेंट 1.2.3 से: फ़्रैगमेंट में शामिल ProGuard नियमों का दायरा कम किया गया, ताकि यह पक्का किया जा सके कि इस्तेमाल नहीं की गई फ़्रैगमेंट क्लास को हटाया जा सके. (b/149665169)
  • फ़्रैगमेंट 1.2.3 से: Kotlin प्रॉपर्टी के नाम को शैडो करने वाले लोकल वैरिएबल नाम का इस्तेमाल करते समय, UseRequireInsteadOfGet लिंट जांच में फ़ॉल्स पॉज़िटिव को ठीक किया गया. (b/149891163)
  • फ़्रैगमेंट 1.2.3 से: FragmentContainerView, लेआउट की झलक में गलत कंस्ट्रक्टर का इस्तेमाल करने पर, UnsupportedOperationException नहीं दिखाता है. (b/149707833)

आम समस्याएं

  • BottomSheetDialogFragment अब स्क्रीन पर अपने डायलॉग बॉक्स की जगह ठीक से नहीं रखता है. (b/151652127)

वर्शन 1.3.0-alpha01

4 मार्च, 2020

androidx.fragment:fragment:1.3.0-alpha01, androidx.fragment:fragment-ktx:1.3.0-alpha01, और androidx.fragment:fragment-testing:1.3.0-alpha01 रिलीज़ हुए हैं. वर्शन 1.3.0-alpha01 में ये कमियां हैं.

नई सुविधाएं

  • लाइफ़साइकल 2.3.0-alpha01 में जोड़े गए, ViewTreeLifecycleOwner.get(View) एपीआई के लिए सहायता जोड़ी गई है, ताकि यह onCreateView() से मिले सभी व्यू के लिए, फ़्रैगमेंट के viewLifecycleOwner को LifecycleOwner के तौर पर दिखाए. (aosp/1182955)

एपीआई में किए गए बदलाव

  • फ़्रैगमेंट पर setRetainInstance() तरीका बंद कर दिया गया है. ViewModels की शुरुआत के साथ, डेवलपर के पास डेटा बनाए रखने के लिए एक खास एपीआई होता है, जिसे गतिविधियों, फ़्रैगमेंट, और नेविगेशन ग्राफ़ से जोड़ा जा सकता है. यह डेवलपर को सामान्य, बिना रखरखाव वाले फ़्रैगमेंट का इस्तेमाल करने और उस खास स्थिति को अलग बनाए रखने की अनुमति देता है जिसे वे अलग बनाए रखना चाहते हैं. साथ ही, यह लीक होने के सामान्य सोर्स से बचाता है और बनाए रखी गई स्थिति (जैसे कि ViewModel का कंस्ट्रक्टर और इसे मिलने वाले onCleared() कॉलबैक) के विनाश के लिए उपयोगी प्रॉपर्टी को बनाए रखता है. (b/143911815)
  • ViewPager2 1.0.0 को रिलीज़ करने के बाद, ViewPager के साथ इंटरैक्ट करने वाली FragmentPagerAdapter और FragmentStatePagerAdapter क्लास को बंद कर दिया गया है. ViewPager से ViewPager2 पर माइग्रेट करना देखें. (b/145132715)

गड़बड़ियां ठीक की गईं

  • फ़्रैगमेंट ProGuard नियम अब सिर्फ़ डिफ़ॉल्ट कंस्ट्रक्टर Fragment क्लास को सही तरीके से रखते हैं, जिनका इस्तेमाल सभी Fragment इंस्टेंस के बजाय किया जाता है. इससे फ़्रैगमेंट 1.2.1 में किए गए रिग्रेशन को ठीक किया जा सकता है. (b/149665169
  • फ़्रैगमेंट 1.2.2 में जोड़े गए require___() लिंट नियम, ऐसे लोकल वैरिएबल पर फ़ॉल्स पॉज़िटिव नहीं हैं जिनका नाम शैडो किए गए Kotlin प्रॉपर्टी नामों से मेल खाता है (जैसे, view). (b/149891163)
  • Android Studio में लेआउट की झलक का इस्तेमाल करने पर, FragmentContainerView में अब UnsupportedOperationException नहीं दिखता है. (b/149707833)
  • समस्या को ठीक किया गया है, जहां स्थिति को सेव किए जाने के बाद जोड़े गए बनाए रखे गए फ़्रैगमेंट को लगातार फिर से नहीं बनाया जा सकेगा. साथ ही, उन्हें हर कॉन्फ़िगरेशन बदलाव के बाद खत्म कर दिया जाएगा. (b/145832397)

वर्शन 1.2.5

वर्शन 1.2.5

10 जून, 2020

androidx.fragment:fragment:1.2.5, androidx.fragment:fragment-ktx:1.2.5, और androidx.fragment:fragment-testing:1.2.5 रिलीज़ हुए हैं. वर्शन 1.2.5 में ये कमियां शामिल हैं.

गड़बड़ियां ठीक की गईं

  • फ़्रैगमेंट के getViewLifecycleOwner() को onSaveInstanceState() को कॉल करने से पहले बंद कर दिया गया है. यह फ़्रैगमेंट की लाइफ़साइकल के व्यवहार की मिररिंग करता है. इसे पहले फ़्रैगमेंट 1.3.0-alpha04 में रिलीज़ किया गया था. (b/154645875)
  • किसी फ़्रैगमेंट पर setMenuVisibility(false) को कॉल करने से, इसके चाइल्ड फ़्रैगमेंट से मिलने वाले मेन्यू की दृश्यता सही तरीके से बदल जाती है. इसे पहले फ़्रैगमेंट 1.3.0-alpha04 में रिलीज़ किया गया था. (b/153593580)

वर्शन 1.2.4

वर्शन 1.2.4

1 अप्रैल, 2020

androidx.fragment:fragment:1.2.4, androidx.fragment:fragment-ktx:1.2.4, और androidx.fragment:fragment-testing:1.2.4 रिलीज़ हुए हैं. वर्शन 1.2.4 में ये कमियां शामिल हैं.

गड़बड़ियां ठीक की गईं

  • रखे गए फ़्रैगमेंट को अस्पष्ट बनाने की अनुमति देने के लिए, फ़्रैगमेंट ProGuard के नियमों को अपडेट किया गया. (b/151605338)
  • DialogFragment क्लास पर FragmentLiveDataObserve लिंट नियम को बंद किया गया, क्योंकि उनकी लाइफ़साइकल और व्यू लाइफ़साइकल हमेशा सिंक रहते हैं. इस वजह से, observe को कॉल करते समय this या viewLifecycleOwner का इस्तेमाल करना सुरक्षित रहता है. (b/151765086)

वर्शन 1.2.3

वर्शन 1.2.3

18 मार्च, 2020

androidx.fragment:fragment:1.2.3, androidx.fragment:fragment-ktx:1.2.3, और androidx.fragment:fragment-testing:1.2.3 रिलीज़ हुए हैं. वर्शन 1.2.3 में ये कमियां शामिल हैं.

गड़बड़ियां ठीक की गईं

  • DialogFragment में उस गड़बड़ी को ठीक किया गया जिसकी वजह से onCreateDialog() के अंदर से, getLayoutInflater() को कॉल करते समय StackOverflowError आया था. (b/117894767, aosp/1258665)
  • फ़्रैगमेंट में शामिल ProGuard नियमों के दायरे को कम किया गया, ताकि यह पक्का किया जा सके कि इस्तेमाल न किए गए फ़्रैगमेंट क्लास को हटाया जा सके. (b/149665169)
  • Kotlin प्रॉपर्टी के नाम को शैडो करने वाले लोकल वैरिएबल नाम का इस्तेमाल करते समय, UseRequireInsteadOfGet लिंट की जांच में फ़ॉल्स पॉज़िटिव को ठीक किया गया. (b/149891163)
  • FragmentContainerView, लेआउट की झलक में गलत कंस्ट्रक्टर इस्तेमाल करने पर, UnsupportedOperationException नहीं दिखाता है. (b/149707833)

वर्शन 1.2.2

वर्शन 1.2.2

19 फ़रवरी, 2020

androidx.fragment:fragment:1.2.2, androidx.fragment:fragment-ktx:1.2.2, और androidx.fragment:fragment-testing:1.2.2 रिलीज़ हुए हैं. वर्शन 1.2.2 में ये कमियां शामिल हैं.

नई लिंट जांच

  • लिंट का सुझाव है कि onCreateView(), onViewCreated(), और onActivityCreated() में OnBackPressedDispatcher में कॉल करने के लिए, viewLifecycleOwner को LifecycleOwner के तौर पर इस्तेमाल किया जा सकता है. (b/142117657)
  • एक नया लिंट चेक जोड़ा गया, जो यह पुष्टि करता है कि fragment-testing आर्टफ़ैक्ट का इस्तेमाल करते समय, सही debugImplementation का इस्तेमाल किया जा रहा है. (b/141500106)
  • फ़्रैगमेंट अब checkNotNull(get___()), requireNonNull(get___()) या get___()!! के बजाय गड़बड़ी के ज़्यादा जानकारी वाले मैसेज के लिए, जुड़े हुए require___() तरीकों का इस्तेमाल करने का सुझाव देते हैं. ऐसा उन सभी फ़्रैगमेंट एपीआई के लिए किया जाता है जिनमें get और require मिलते-जुलते, दोनों शामिल होते हैं. (aosp/1202883)

गड़बड़ियां ठीक की गईं

  • R8 की चेतावनियों से बचने के लिए, फ़्रैगमेंट ProGuard फ़ाइलों को ठीक किया गया (b/148963981)
  • observe का इस्तेमाल करते समय viewLifecycleOwner का इस्तेमाल करने का सुझाव देने वाली मौजूदा लिंट जांच को बेहतर बनाया गया, ताकि observe के livedata-ktx एक्सटेंशन तरीके के वर्शन को भी हैंडल किया जा सके. (b/148996309)
  • कई लिंट जांच के लिए फ़ॉर्मैटिंग को ठीक किया गया (aosp/1157012)

बाहरी योगदान

  • Slack की ओर से require___() लिंट चेक में योगदान देने के लिए ज़ैक स्वियर्स का धन्यवाद! (aosp/1202883)

वर्शन 1.2.1

वर्शन 1.2.1

5 फ़रवरी, 2020

androidx.fragment:fragment:1.2.1, androidx.fragment:fragment-ktx:1.2.1, और androidx.fragment:fragment-testing:1.2.1 रिलीज़ हुए हैं. वर्शन 1.2.1 में ये कमियां शामिल हैं.

गड़बड़ियां ठीक की गईं

  • add और replace वाले तरीके से जोड़े गए ऐसे फ़्रैगमेंट जो Class इंस्टेंस (या Kotlin के बदलाव किए गए वर्शन) लेते हैं, अब उनका डिफ़ॉल्ट कंस्ट्रक्टर, ProGuard की मदद से रखा जाता है. (b/148181315)
  • finishUpdate() को चलाने पर, FragmentStatePagerAdapter और FragmentPagerAdapter अब FragmentManager की ओर से दिए गए अपवाद नहीं पकड़ पाएंगे. (aosp/1208711)
  • उस समस्या को ठीक किया गया है जिसकी वजह से FragmentManager.findFragment(), <fragment> टैग के ज़रिए जोड़े गए फ़्रैगमेंट के साथ काम नहीं करता था. (b/147784323)
  • <fragment> टैग का इस्तेमाल करके बढ़ाए गए फ़्रैगमेंट, अब लेआउट में होने पर हमेशा onCreate() से पहले onInflate() पर कॉल करते हैं. (aosp/1215856)
  • किसी FragmentManager इंस्टेंस पर toString() को कॉल करने से, गतिविधि पहले ही खत्म हो जाने पर NullPointerException नहीं आता है. (b/148189412)

डिपेंडेंसी में बदलाव

वर्शन 1.2.0

वर्शन 1.2.0

22 जनवरी, 2020

androidx.fragment:fragment:1.2.0, androidx.fragment:fragment-ktx:1.2.0, और androidx.fragment:fragment-testing:1.2.0 रिलीज़ हुए हैं. वर्शन 1.2.0 में ये कमियां शामिल हैं.

1.1.0 के बाद से हुए अहम बदलाव

  • फ़्रैगमेंट कंटेनरव्यू: डाइनैमिक तौर पर जोड़े गए फ़्रैगमेंट के लिए, FragmentContainerView सुझाया गया कंटेनर है. यह FrameLayout या अन्य लेआउट के इस्तेमाल की जगह लेता है. यह उसी class, android:name, और वैकल्पिक android:tag के साथ भी काम करता है जो <fragment> टैग के साथ काम करता है. हालांकि, यह <fragment> की ओर से इस्तेमाल किए गए कस्टम कोड पाथ के बजाय, इस शुरुआती फ़्रैगमेंट को जोड़ने के लिए, सामान्य FragmentTransaction का इस्तेमाल करता है.
  • onDestroyView() समय: फ़्रैगमेंट अब onDestroyView() को कॉल करने से पहले, एग्ज़िट ऐनिमेशन, एग्ज़िट फ़्रेमवर्क ट्रांज़िशन का इंतज़ार करते हैं, और AndroidX ट्रांज़िशन (ट्रांज़िशन 1.3.0 का इस्तेमाल करते समय) से बाहर निकल जाते हैं.
  • क्लास आधारित add() और replace(): FragmentTransaction पर add() और replace() के नए ओवरलोड जोड़े गए. साथ ही, Class<? extends Fragment> और वैकल्पिक Bundle आर्ग्युमेंट इस्तेमाल किए गए. ये तरीके, जोड़ने के लिए फ़्रैगमेंट का एक इंस्टेंस बनाने के लिए आपके FragmentFactory का इस्तेमाल करते हैं. fragment-ktx में ऐसे Kotlin एक्सटेंशन जोड़ दिए गए हैं जो सुधार किए गए टाइप (जैसे, fragmentTransaction.replace<YourFragment>(R.id.container)) का इस्तेमाल करते हैं.
  • लाइफ़साइकल व्यूमॉडल सेव स्टेट इंटिग्रेशन: SavedStateViewModelFactory अब डिफ़ॉल्ट फ़ैक्ट्री है. इसका इस्तेमाल by viewModels(), by activityViewModels(), ViewModelProvider कंस्ट्रक्टर या ViewModelProviders.of() को फ़्रैगमेंट के साथ इस्तेमाल करते समय किया जाता है.
  • नई लिंट जांच: नया लिंट चेक जोड़ा गया, जिससे यह पक्का होता है कि onCreateView(), onViewCreated() या onActivityCreated() से LiveData को मॉनिटर करते समय, getViewLifecycleOwner() का इस्तेमाल किया जा रहा है.
  • getFragmentManager() का इस्तेमाल बंद कर दिया गया है: फ़्रैगमेंट के getFragmentManager() और requireFragmentManager() तरीकों को बंद कर दिया गया है. साथ ही, उन्हें सिंगल getParentFragmentManager() तरीके से बदल दिया गया है. इससे फ़्रैगमेंट जोड़ा जाने वाला ऐसा FragmentManager मिलता है जो शून्य नहीं है. isAdded() का इस्तेमाल करके यह पता लगाया जा सकता है कि इसे कॉल करना सुरक्षित है या नहीं.
  • FragmentManager.enableDebugLogging() का इस्तेमाल बंद किया गया है: स्टैटिक FragmentManager.enableDebugLogging तरीके को बंद कर दिया गया है. फ़्रैगमेंट मैनेजर, FragmentManager टैग के लिए Log.isLoggable() का पालन करता है. इसकी मदद से, अपने ऐप्लिकेशन को फिर से कंपाइल किए बिना ही DEBUG या VERBOSE लॉगिंग की सुविधा चालू की जा सकती है.

आम समस्याएं

  • FragmentContainerView पर सिर्फ़ class या android:name एट्रिब्यूट के ज़रिए रेफ़र किए गए फ़्रैगमेंट, ProGuard अपने-आप सेव नहीं होते. इसलिए, हर फ़्रैगमेंट क्लास के लिए Keep का नियम मैन्युअल तरीके से जोड़ना ज़रूरी है. (b/142601969)
  • class या android:name की मदद से FragmentContainerView के साथ एक्सएमएल में, NavHostFragment जोड़ने पर, अपनी गतिविधि के onCreate() में findNavController() का इस्तेमाल नहीं किया जा सकता. (b/142847973)

वर्शन 1.2.0-rc05

8 जनवरी, 2020

androidx.fragment:fragment:1.2.0-rc05, androidx.fragment:fragment-ktx:1.2.0-rc05, और androidx.fragment:fragment-testing:1.2.0-rc05 रिलीज़ हुए हैं. वर्शन 1.2.0-rc05 में ये कमियां शामिल हैं.

गड़बड़ियां ठीक की गईं

  • <fragment> टैग का इस्तेमाल करते समय फ़्रैगमेंट 1.2.0-rc04 में रिग्रेशन को ठीक किया गया. इसकी वजह से गतिविधि खत्म होने के दौरान onViewCreated() को गलत तरीके से कॉल किया गया था. (b/146290333)
  • <fragment> टैग के साथ जोड़े गए फ़्रैगमेंट अब सही तरीके से अपने नॉन-कॉन्फ़िगरेशन को मिटा दिए गए हैं, भले ही वे कभी-कभी लेआउट में हों (जैसे, सिर्फ़ आपके लैंडस्केप लेआउट में). इस वजह से, ये फ़्रैगमेंट अब सही तरीके से CREATED में ले जाए जाते हैं, भले ही वे आपके लेआउट में न हों, न कि इंस्टैंशिएट किए जाने के बजाय, लेकिन लाइफ़साइकल के तरीकों से कभी न जाएं. (b/145769287)

वर्शन 1.2.0-rc04

18 दिसंबर, 2019

androidx.fragment:fragment:1.2.0-rc04, androidx.fragment:fragment-ktx:1.2.0-rc04, और androidx.fragment:fragment-testing:1.2.0-rc04 रिलीज़ हुए हैं. वर्शन 1.2.0-rc04 में ये कमियां शामिल हैं.

गड़बड़ियां ठीक की गईं

  • विज़ुअल समस्याओं से बचने के लिए, TRANSIT_FRAGMENT_OPEN, TRANSIT_FRAGMENT_CLOSE, और TRANSIT_FRAGMENT_FADE के ऐनिमेशन में बदलाव किया गया. (b/145468417)

वर्शन 1.2.0-rc03

4 दिसंबर, 2019

androidx.fragment:fragment:1.2.0-rc03, androidx.fragment:fragment-ktx:1.2.0-rc03, और androidx.fragment:fragment-testing:1.2.0-rc03 रिलीज़ हुए हैं. वर्शन 1.2.0-rc03 में ये कमियां शामिल हैं.

गड़बड़ियां ठीक की गईं

  • अनजाने में हुए व्यवहार में होने वाले बदलाव को ठीक किया गया है, जहां हटाए गए फ़्रैगमेंट अब भी findFragmentById() / findFragmentByTag() तक लौटते हैं, जबकि उनका एग्ज़िट ऐनिमेशन/ट्रांज़िशन चलता है. (b/143982969, aosp/1167585)
  • जब शामिल गतिविधि onSaveInstanceState() को कॉल करती है, तब चाइल्ड फ़्रैगमेंट अब उनके माता-पिता से पहले ठीक तरह से बंद हो जाते हैं. (b/144380645)
  • उस समस्या को ठीक किया गया है जिसकी वजह से, छिपे हुए फ़्रैगमेंट को पॉप-अप करने के बाद, व्यू को गलत तरीके से INVISIBLE के तौर पर मार्क किया गया था. (b/70793925)
  • फ़्रैगमेंट शेयर किए गए एलिमेंट ट्रांज़िशन, अब ऐसे व्यू हैंडल करते हैं जिन्हें घुमाया गया, स्केल किया गया वगैरह. (b/142835261)

दस्तावेज़ से जुड़े अपडेट

  • setUserVisibleHint() के आस-पास, काम रोकने से जुड़े दस्तावेज़ के बारे में पूरी जानकारी दी गई. (b/143897055)
  • setFragmentFactory() और getFragmentFactory() पर दस्तावेज़ को बेहतर बनाया गया है, ताकि यह बेहतर तरीके से बताया जा सके कि FragmentFactory सेट करने पर चाइल्ड फ़्रैगमेंट मैनेजर पर भी असर पड़ेगा. (aosp/1170095)

डिपेंडेंसी में बदलाव

  • फ़्रैगमेंट अब लाइफ़साइकल 2.2.0-rc03, Lifecycle ViewModel सेव की गई स्टेट 1.0.0-rc03, और गतिविधि 1.1.0-rc03 पर निर्भर करते हैं.

वर्शन 1.2.0-rc02

7 नवंबर, 2019

androidx.fragment:fragment:1.2.0-rc02, androidx.fragment:fragment-ktx:1.2.0-rc02, और androidx.fragment:fragment-testing:1.2.0-rc02 रिलीज़ हुए हैं. वर्शन 1.2.0-rc02 में ये कमियां शामिल हैं.

गड़बड़ियां ठीक की गईं

  • Kotlin में, onCreateView(), onViewCreated() या onActivityCreated() (फ़्रैगमेंट 1.2.0-rc01 में पेश किया गया) में LiveData को देखते समय, getViewLifecycleOwner() का इस्तेमाल करने के लिए LitFix अब getViewLifecycleOwner() के बजाय, Kotlin प्रॉपर्टी ऐक्सेस सिंटैक्स viewLifecycleOwner का इस्तेमाल करता है. (aosp/1143821)

वर्शन 1.2.0-rc01

23 अक्टूबर, 2019

androidx.fragment:fragment:1.2.0-rc01, androidx.fragment:fragment-ktx:1.2.0-rc01, और androidx.fragment:fragment-testing:1.2.0-rc01 रिलीज़ हुए हैं. वर्शन 1.2.0-rc01 में ये कमियां शामिल हैं.

नई सुविधाएं

  • FragmentContainerView में अब android:name के साथ-साथ, class एट्रिब्यूट का भी इस्तेमाल किया जा सकता है. यह <fragment> टैग के फ़ंक्शन की डुप्लीकेट कॉपी बनाता है. (b/142722242)
  • एक नया लिंट चेक जोड़ा गया है, जिससे यह पक्का होता है कि onCreateView(), onViewCreated() या onActivityCreated() से LiveData को देखते समय, getViewLifecycleOwner() का इस्तेमाल किया जा रहा है. (b/137122478)

गड़बड़ियां ठीक की गईं

  • DialogFragment पर onDismiss और onCancel कॉलबैक, अब इस बात की गारंटी देते हैं कि उन्हें पास किया गया DialogInterface अमान्य है. साथ ही, getDialog() एक्ज़ीक्यूट किए जाने पर, उनके लिए कोई वैल्यू नहीं दिखाता है. (b/141974033)
  • FragmentContainerView अब इनफ़्लेशन के हिस्से के तौर पर class या android:name के तय किए गए फ़्रैगमेंट को जोड़ता है. इससे यह पक्का किया जाता है कि findFragmentById() और findFragmentByTag() इसके बाद तुरंत काम करें. (b/142520327)
  • स्टेटस सेव होने की वजह से, FragmentContainerView के IllegalStateException में सुधार किया गया. (b/142580713)
  • FragmentContainerView क्लास के अस्पष्ट होने पर, FragmentContainerView में UnsupportedOperationException को ठीक किया गया. (b/142657034)

आम समस्याएं

  • FragmentContainerView पर सिर्फ़ class या android:name एट्रिब्यूट के ज़रिए रेफ़र किए गए फ़्रैगमेंट, ProGuard अपने-आप सेव नहीं होते. इसलिए, हर फ़्रैगमेंट क्लास के लिए Keep का नियम मैन्युअल तरीके से जोड़ना ज़रूरी है. जब तक इस समस्या को aapt2 के ज़रिए ठीक नहीं कर लिया जाता, तब तक हमने FragmentContainerView पर ले जाने का सुझाव देने वाले लिंट के नियम को बंद कर दिया है. (b/142601969)

वर्शन 1.2.0-beta02

11 अक्टूबर, 2019

androidx.fragment:fragment:1.2.0-beta02, androidx.fragment:fragment-ktx:1.2.0-beta02, और androidx.fragment:fragment-testing:1.2.0-beta02 रिलीज़ हुए हैं. वर्शन 1.2.0-beta02 में ये तय किए गए हिस्से शामिल हैं.

गड़बड़ियां ठीक की गईं

  • उस समस्या को ठीक किया गया है जिसकी वजह से फ़्रैगमेंट के onInflate() को FragmentContainerView से सही एट्रिब्यूट नहीं मिले. जैसे, NavHostFragment ब्रेकिंग केस. (b/142421837)

वर्शन 1.2.0-beta01

9 अक्टूबर, 2019

androidx.fragment:fragment:1.2.0-beta01, androidx.fragment:fragment-ktx:1.2.0-beta01, और androidx.fragment:fragment-testing:1.2.0-beta01 रिलीज़ हुए हैं. वर्शन 1.2.0-beta01 में ये कमियां शामिल हैं.

नई सुविधाएं

  • FragmentContainerView, android:name और विकल्प के तौर पर android:tag एक्सएमएल एट्रिब्यूट के लिए, शुरुआती फ़्रैगमेंट जोड़ने की सुविधा देता है. <fragment> टैग के उलट, FragmentContainerView शुरुआती फ़्रैगमेंट जोड़ने के लिए हुड के तहत सामान्य FragmentTransaction का इस्तेमाल करता है. इससे FragmentContainerView पर और FragmentTransaction कार्रवाइयां की जा सकती हैं और लेआउट के लिए व्यू बाइंडिंग चालू हो जाती है. (b/139830628, b/141177981)
  • फ़्रैगमेंट में अब Lit की चेतावनी दिख रही है. यह चेतावनी मिलने पर, <fragment> को FragmentContainerView से तुरंत बदलने की सुविधा मिलती है. (b/139830056)

गड़बड़ियां ठीक की गईं

  • androidx.transition का इस्तेमाल करते समय, ClassCastException को ठीक किया गया. (b/140680619)
  • ट्रांज़िशन 1.3.0-beta01 का इस्तेमाल करते समय, फ़्रैगमेंट अब androidx.transition ट्रांज़िशन का इंतज़ार करते हैं. (इसके, फ़्रैगमेंट 1.2.0-alpha03 और फ़्रैगमेंट 1.2.0-alpha02 में तय किए गए फ़्रेमवर्क ट्रांज़िशन और ऐनिमेशन के अलावा), onDestroyView() डिस्पैच करने से पहले androidx.transition ट्रांज़िशन पूरे होते हैं. (aosp/1119841)
  • ट्रांज़िशन 1.3.0-beta01 का इस्तेमाल करते समय, फ़्रैगमेंट अब उसी कंटेनर पर नए ट्रांज़िशन / ऐनिमेशन शुरू करने से पहले androidx.transition ट्रांज़िशन को सही तरीके से रद्द कर देते हैं. (aosp/1119841)
  • FragmentContainerView का इस्तेमाल करते समय, आपके फ़्रैगमेंट के रूट व्यू पर androidx.transition ट्रांज़िशन का इस्तेमाल करते समय, एपीआई 17 और इससे पहले के वर्शन में आने वाली गड़बड़ी ठीक की गई. (b/140361893)
  • fragment-testing आर्टफ़ैक्ट अब AndroidX Test 1.2.0 पर निर्भर है, जिसमें सबसे नए Espresso 3.2.0 के साथ काम करने की क्षमता को ठीक किया गया है. (b/139100149)
  • फ़्रैगमेंट मैनेजर में Log.w का इस्तेमाल हटाया गया. (aosp/1126468)

आम समस्याएं

  • फ़्रैगमेंट के onInflate() को FragmentContainerView से सही एट्रिब्यूट नहीं मिलते हैं, जैसे कि NavHostFragment ब्रेकिंग केस. (b/142421837)

वर्शन 1.2.0-alpha04

18 सितंबर, 2019

androidx.fragment:fragment:1.2.0-alpha04, androidx.fragment-ktx:example:1.2.0-alpha04, और androidx.fragment:fragment-testing:1.2.0-alpha04 रिलीज़ हुए हैं. वर्शन 1.2.0-alpha04 में ये कमियां हैं.

एपीआई में किए गए बदलाव

  • Fragment पर getFragmentManager() और requireFragmentManager() तरीकों को बंद कर दिया गया है. इन्हें getParentFragmentManager() वाले तरीके से बदल दिया गया है. इससे फ़्रैगमेंट जोड़ा जाने पर, बिना शून्य वाला FragmentManager मिलता है. isAdded() का इस्तेमाल करके यह पता लगाया जा सकता है कि कॉल करना सुरक्षित है या नहीं. (b/140574496)
  • स्टैटिक FragmentManager.enableDebugLogging तरीके अब काम नहीं करता. फ़्रैगमेंट मैनेजर, FragmentManager टैग के लिए Log.isLoggable() का पालन करता है. इसकी मदद से, अपने ऐप्लिकेशन को फिर से कंपाइल किए बिना ही DEBUG या VERBOSE लॉगिंग की सुविधा चालू की जा सकती है. (aosp/1116591)

गड़बड़ियां ठीक की गईं

  • फ़्रैगमेंट अब सही तरीके से खत्म हो जाते हैं, जबकि दूसरे फ़्रैगमेंट पर एग्ज़िट ऐनिमेशन चल रहे होते हैं. (b/140574199)
  • समस्या को ठीक किया गया है जहां फ़्रैगमेंट, Activity.findViewById() को कॉल करते थे, जहां पहले नहीं होता था. (aosp/1116431)

वर्शन 1.2.0-alpha03

5 सितंबर, 2019

androidx.fragment:fragment:1.2.0-alpha03, androidx.fragment:fragment-ktx:1.2.0-alpha03, और androidx.fragment:fragment-testing:1.2.0-alpha03 रिलीज़ हुए हैं. इस वर्शन में शामिल कमिट को यहां देखा जा सकता है.

एपीआई में किए गए बदलाव

  • FragmentContainerView अब final है. (b/140133091)

गड़बड़ियां ठीक की गईं

  • बैक स्टैक से फ़्रैगमेंट को पॉप-अप करने पर, FragmentContainerView अब ड्रॉ का क्रम उलट देता है. (b/139104187)
  • उस समस्या को ठीक किया गया है जहां एक ही समय में फ़्रैगमेंट पॉप-अप करते समय और नया फ़्रैगमेंट जोड़ने पर, गलत ऐनिमेशन चल सकता था. (b/111659726)
  • फ़्रैगमेंट अब ट्रांज़िशन पूरा होने का इंतज़ार करते हैं (इनमें फ़्रैगमेंट 1.2.0-alpha02 में तय किए गए ऐनिमेशन शामिल थे), जो onDestroyView() भेजने से पहले पूरा होता है. (b/138741697)

वर्शन 1.2.0-alpha02

7 अगस्त, 2019

androidx.fragment:fragment:1.2.0-alpha02, androidx.fragment:fragment-ktx:1.2.0-alpha02, और androidx.fragment:fragment-testing:11.2.0-alpha02 रिलीज़ हुए हैं. इस वर्शन में शामिल कमिट को यहां देखा जा सकता है.

नई सुविधाएं

  • SavedStateViewModelFactory को डिफ़ॉल्ट फ़ैक्ट्री के तौर पर सेट कर दिया गया है. इसे Fragment के साथ by viewModels(), by activityViewModels(), ViewModelProvider कंस्ट्रक्टर या ViewModelProviders.of() का इस्तेमाल करते समय इस्तेमाल किया जाता है. (b/135716331)
  • FragmentTransaction पर setTransition के साथ TRANSIT_FRAGMENT_OPEN, TRANSIT_FRAGMENT_CLOSE, और TRANSIT_FRAGMENT_FADE का इस्तेमाल करने पर, डिफ़ॉल्ट ऐनिमेशन अपडेट कर दिए गए हैं. ये बदलाव, Android 10 डिवाइसों पर होने वाली गतिविधियों में इस्तेमाल होने वाले ऐनिमेशन के मुताबिक किए गए हैं. (aosp/1012812, aosp/1014730)

एपीआई में किए गए बदलाव

  • यह डाइनैमिक तरीके से जोड़े गए फ़्रैगमेंट के लिए, सबसे ज़्यादा सुझाए गए कंटेनर के तौर पर FragmentContainerView का इस्तेमाल करता है. यह FrameLayout वगैरह का इस्तेमाल करता है. इसकी वजह यह है कि यह ऐनिमेशन ज़ेड-ऑर्डर करने से जुड़ी समस्याओं और फ़्रैगमेंट को भेजे जाने वाले विंडो इनसेट को ठीक करता है. (b/37036000, aosp/985243, b/136494650)
  • फ़्रैगमेंट की वजह से बढ़ाए गए व्यू से शामिल फ़्रैगमेंट वापस पाने के लिए, स्टैटिक FragmentManager.findFragment(View) तरीका जोड़ा गया. fragment-ktx में Kotlin एक्सटेंशन भी उपलब्ध है. (aosp/1090757)
  • FragmentTransaction पर add() और replace() के नए ओवरलोड जोड़े गए. इनमें Class<? extends Fragment> और Bundle आर्ग्युमेंट शामिल किए गए. हालांकि, इनकी ज़रूरत नहीं होती. ये तरीके, जोड़ने के लिए फ़्रैगमेंट का एक इंस्टेंस बनाने के लिए आपके FragmentFactory का इस्तेमाल करते हैं. fragment-ktx में ऐसे Kotlin एक्सटेंशन को भी जोड़ दिया गया है जो सुधार किए गए टाइप (जैसे, fragmentTransaction.replace<YourFragment>(R.id.container)) का इस्तेमाल करता है. (b/126124987)
  • Fragment लाइफ़साइकल कॉलबैक में @MainThread एनोटेशन जोड़े गए. (b/127272564)
  • FragmentTransaction और FragmentManager.BackStackEntry पर ब्रेडक्रंब टाइटल से जुड़े एपीआई इस्तेमाल नहीं किए जा सकते. (b/138252944)
  • FragmentTransaction पर setTransitionStyle तरीके का इस्तेमाल नहीं किया जा सकता. (aosp/1011537)
  • FragmentManager में मौजूद कई तरीके अब abstract नहीं हैं. FragmentManager ही abstract ही रहेगा और उसे सीधे तौर पर इंस्टैंशिएट या बढ़ाया नहीं जाना चाहिए; आपको getSupportFragmentManager(), getChildFragmentManager() वगैरह से सिर्फ़ मौजूदा इंस्टेंस पाना जारी रखना चाहिए.

गड़बड़ियां ठीक की गईं

  • फ़्रैगमेंट 1.1.0-rc04 से: फ़्रैगमेंट अब सही तरीके से टारेगट किए गए ट्रांज़िशन रद्द करते हैं. फ़्रैगमेंट पॉप-अप होते हैं. (b/138251858)
  • फ़्रैगमेंट 1.1.0-rc03 से: उस समस्या को ठीक किया गया है जिसमें postponeEnterTransition() को एक से ज़्यादा बार टाइम आउट के साथ कॉल करने पर, पिछले टाइम आउट रद्द नहीं होते. (b/137797118)
  • फ़्रैगमेंट 1.1.0-rc02 से: मौजूदा आइटम को हटाते समय, FragmentPagerAdapter और FragmentStatePagerAdapter में क्रैश होने की समस्या को ठीक किया गया. (b/137209870)
  • फ़्रैगमेंट अब onDestroyView() भेजने से पहले ऐनिमेशन के खत्म होने का इंतज़ार करते हैं. (b/136110528)
  • पैरंट फ़्रैगमेंट को ऐनिमेट करते समय, चाइल्ड फ़्रैगमेंट और उनके डिसेंडेंट के फ़्रैगमेंट ऐनिमेशन अब सही तरीके से हैंडल किए जाते हैं. (b/116675313)
  • शेयर किए गए एलिमेंट ट्रांज़िशन का इस्तेमाल करते समय, पॉप और ऐड ऑपरेशन को कॉम्बिनेशन करते समय, NullPointerException को ठीक किया गया. (b/120507394)
  • Robolectric में FragmentPagerAdapter और FragmentStatePagerAdapter का इस्तेमाल करते समय, IllegalStateException में एक समाधान जोड़ा गया. (b/137201343)

वर्शन 1.2.0-alpha01

2 जुलाई, 2019

androidx.fragment:fragment:1.2.0-alpha01, androidx.fragment:fragment-ktx:1.2.0-alpha01, और androidx.fragment:fragment-testing:1.2.0-alpha01 रिलीज़ हुए हैं. इस वर्शन में शामिल कमिट को यहां देखा जा सकता है.

नई सुविधाएं

  • फ़्रैगमेंट मैनेजर, अब फ़्रैगमेंट के व्यू को अटैच करने के बाद और onViewCreated() को कॉल करने से पहले, requestApplyInsets() को कॉल करता है. इससे यह पक्का किया जाता है कि आपके व्यू में हमेशा सही इनसेट हों. (b/135945162)

गड़बड़ियां ठीक की गईं

  • replace() से पहले setPrimaryNavigationFragment() का इस्तेमाल करने वाले FragmentTransaction को पॉप-अप करते समय, NullPointerException को ठीक किया गया. (b/134673465)

वर्शन 1.1.0

वर्शन 1.1.0

5 सितंबर, 2019

androidx.fragment:fragment:1.1.0, androidx.fragment:fragment-ktx:1.1.0, और androidx.fragment:fragment-testing:1.1.0 रिलीज़ हुए हैं. इस वर्शन में शामिल कमिट को यहां देखा जा सकता है.

1.0.0 के बाद से हुए अहम बदलाव

  • फ़्रैगमेंट की जांच करना: fragment-testing आर्टफ़ैक्ट में FragmentScenario क्लास होती है, ताकि फ़्रैगमेंट की जांच की जा सके. ज़्यादा जानकारी के लिए, अपने ऐप्लिकेशन के फ़्रैगमेंट से जुड़े दस्तावेज़ की जांच करें देखें.
  • फ़्रैगमेंट: अब आपके पास फ़्रैगमेंट इंस्टेंस बनाने का काम मैनेज करने के लिए, FragmentManager पर FragmentFactory सेट करने का विकल्प है. ऐसा करने पर, नो-आर्ग्युमेंट कंस्ट्रक्टर की ज़रूरी शर्त को हटाना पड़ता है.
  • ViewModels के लिए Kotlin प्रॉपर्टी डेलिगेट: fragment-ktx आर्टफ़ैक्ट में अब दो Kotlin प्रॉपर्टी डेलिगेट हैं: अलग-अलग फ़्रैगमेंट से जुड़े ViewModels को ऐक्सेस करने के लिए by viewModels() और गतिविधि के दायरे में आने वाले ViewModels को ऐक्सेस करने के लिए by activityViewModels().
  • ज़्यादा से ज़्यादा लाइफ़साइकल: अब FragmentTransaction पर setMaxLifecycle() को कॉल करके, किसी फ़्रैगमेंट के लिए ज़्यादा से ज़्यादा लाइफ़साइकल की स्थिति सेट की जा सकती है. यह अब काम न करने वाले setUserVisibleHint() की जगह ले लेगा. FragmentPagerAdapter और FragmentStatePagerAdapter में नया कंस्ट्रक्टर है, जो आपको नए बिहेवियर पर स्विच करने देता है.
  • फ़्रैगमेंट ऐक्टिविटी लेआउट आईडी कंस्ट्रक्टर: FragmentActivity के सब-क्लास अब FragmentActivity पर ऐसे कंस्ट्रक्टर को कॉल कर सकते हैं जो R.layout आईडी लेता है. इससे यह पता चलता है कि लेआउट को onCreate() में setContentView() को कॉल करने के बजाय, कॉन्टेंट व्यू के तौर पर सेट किया जाना चाहिए. इससे यह ज़रूरी शर्त नहीं बदलती कि आपकी सब-क्लास में बिना तर्क वाला कंस्ट्रक्टर है.
  • फ़्रैगमेंट LayoutId कंस्ट्रक्टर: Fragment के सब-क्लास, अब Fragment पर ऐसे कंस्ट्रक्टर को कॉल कर सकते हैं जो एक R.layout आईडी लेता है. इससे यह जानकारी मिलती है कि इस फ़्रैगमेंट के लिए, इस्तेमाल किया जाना चाहिए.onCreateView() इनफ़्लेटेड लेआउट को onViewCreated() में कॉन्फ़िगर किया जा सकता है.
  • टाइम आउट के साथ फ़िलहाल आगे बढ़ाएं: postponeEnterTransition() का एक नया ओवरलोड जोड़ा गया है, जिसमें समय खत्म होने वाला है.

वर्शन 1.1.0-rc04

7 अगस्त, 2019

androidx.fragment:fragment:1.1.0-rc04, androidx.fragment:fragment-ktx:1.1.0-rc04, और androidx.fragment:fragment-testing:1.1.0-rc04 रिलीज़ हुए हैं. इस वर्शन में शामिल कमिट को यहां देखा जा सकता है.

गड़बड़ियां ठीक की गईं

  • फ़्रैगमेंट अब सही तरीके से फ़्रैगमेंट पर किए गए ऐसे ट्रांज़िशन को रद्द कर देते हैं जो फ़िलहाल टाल दिए गए हैं. (b/138251858)

वर्शन 1.1.0-rc03

19 जुलाई, 2019

androidx.fragment:fragment:1.1.0-rc03, androidx.fragment:fragment-ktx:1.1.0-rc03, और androidx.fragment:fragment-testing:1.1.0-rc03 रिलीज़ हुए हैं. इस वर्शन में शामिल कमिट को यहां देखा जा सकता है.

गड़बड़ियां ठीक की गईं

  • उस समस्या को ठीक किया गया है जिसकी वजह से postponeEnterTransition() को एक से ज़्यादा बार टाइम आउट देने पर, पहले के टाइम आउट रद्द नहीं होते. (b/137797118)

वर्शन 1.1.0-rc02

17 जुलाई, 2019

androidx.fragment:fragment:1.1.0-rc02, androidx.fragment:fragment-ktx:1.1.0-rc02, और androidx.fragment-testing:fragment:1.1.0-rc02 रिलीज़ हुए हैं. इस वर्शन में शामिल कमिट को यहां देखा जा सकता है.

गड़बड़ियां ठीक की गईं

  • मौजूदा आइटम को हटाते समय, FragmentPagerAdapter और FragmentStatePagerAdapter में क्रैश होने की समस्या को ठीक किया गया. (b/137209870)

वर्शन 1.1.0-rc01

2 जुलाई, 2019

androidx.fragment:fragment:1.1.0-rc01, androidx.fragment:fragment-ktx:1.1.0-rc01, और androidx.fragment:fragment-testing:1.1.0-rc01 रिलीज़ हुए हैं. इस वर्शन में शामिल कमिट को यहां देखा जा सकता है.

गड़बड़ियां ठीक की गईं

  • ट्रांज़िशन के दौरान, show() या hide() कार्रवाइयों का इस्तेमाल करते समय, फ़्रैगमेंट सही तरीके से अपनी विज़िबिलिटी अपडेट करते हैं. (b/133385058)
  • replace() से पहले setPrimaryNavigationFragment() का इस्तेमाल करने वाले FragmentTransaction को पॉप-अप करते समय, NullPointerException को ठीक किया गया. (b/134673465)

वर्शन 1.1.0-beta01

5 जून, 2019

androidx.fragment:fragment:1.1.0-beta01, androidx.fragment:fragment-ktx:1.1.0-beta01, और androidx.fragment:fragment-testing:1.1.0-beta01 रिलीज़ हुए हैं. इस वर्शन में शामिल कमिट को यहां देखा जा सकता है.

गड़बड़ियां ठीक की गईं

  • नेस्ट किए गए फ़्रैगमेंट के लिए, androidx.lifecycle.Lifecycle कॉलबैक (खास तौर पर STARTED, RESUMED, PAUSED, STOPPED, और DESTROYED से जुड़े) अब सही तरीके से नेस्ट किए गए हैं. (b/133497591)
  • फ़्रैगमेंट के onCreate() में रजिस्टर किए गए OnBackPressedCallback इंस्टेंस को अब चाइल्ड फ़्रैगमेंट मैनेजर के मुकाबले ज़्यादा प्राथमिकता दी जाती है. (b/133175997)
  • पैरंट फ़्रैगमेंट को बदलते समय, चाइल्ड फ़्रैगमेंट अब ऐनिमेट नहीं किए जाते. (b/121017790)
  • animateLayoutChanges="true" का इस्तेमाल करते समय, फ़्रैगमेंट ऐनिमेशन और ट्रांज़िशन को अनदेखा कर दिया जाता है. इससे फ़्रैगमेंट ठीक से खत्म नहीं होने की समस्या को ठीक किया जा सकता है. (b/116257087)

वर्शन 1.1.0-alpha09

16 मई, 2019

androidx.fragment:fragment:1.1.0-alpha09, androidx.fragment:fragment-ktx:1.1.0-alpha09, और androidx.fragment:fragment-testing:1.1.0-alpha09 रिलीज़ हुए हैं. इस वर्शन में शामिल कमिट को यहां देखा जा सकता है.

एपीआई में किए गए बदलाव

  • मुख्य नेविगेशन फ़्रैगमेंट बदलने पर, फ़्रैगमेंट को अब नए onPrimaryNavigationFragmentChanged(boolean) तरीके पर कॉलबैक मिलता है. aosp/960857

गड़बड़ियां ठीक की गईं

  • चाइल्ड फ़्रैगमेंट की वजह से बढ़ा हुआ मेन्यू आइटम, अब पैरंट फ़्रैगमेंट को हटाने पर सही तरीके से हट जाता है. b/131581013

वर्शन 1.1.0-alpha08

7 मई, 2019

androidx.fragment:fragment:1.1.0-alpha08, androidx.fragment:fragment-ktx:1.1.0-alpha08, और androidx.fragment:fragment-testing:1.1.0-alpha08 रिलीज़ हुए हैं. इस वर्शन में शामिल कमिट को यहां देखा जा सकता है.

यह रिलीज़ प्राथमिकताओं 1.1.0-alpha01 से लेकर 1.1.0-alpha04 तक के साथ काम नहीं करती है. फ़्रैगमेंट के इस वर्शन का इस्तेमाल करते समय, कृपया प्राथमिकताएं 1.1.0-alpha05 पर अपग्रेड करें.

नई सुविधाएं

  • postponeEnterTransition() का नया ओवरलोड जोड़ा गया, जिसमें समय खत्म होने की जानकारी दी गई है. इसके बाद फ़्रैगमेंट अपने-आप startPostponedEnterTransition() b/120803208 को कॉल करेगा

एपीआई में किए गए बदलाव

  • नुकसान पहुंचा सकने वाला बदलाव: Bundle के जिस तरीके से पहले FragmentFactory instantiate काम करना बंद किया गया था उसे हटा दिया गया है. aosp/953856
  • नुकसान पहुंचाने वाला बदलाव: FragmentPagerAdapter और FragmentStatePagerAdapter में, RESUME_ONLY_CURRENT_FRAGMENT और USE_SET_USER_VISIBLE_HINT कॉन्सटेंट का नाम बदलकर, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT और BEHAVIOR_SET_USER_VISIBLE_HINT कर दिया गया है. aosp/954782

गड़बड़ियां ठीक की गईं

  • जिन फ़्रैगमेंट की लाइफ़साइकल को setMaxLifecycle() से सीमित किया गया था उन्हें फिर से शुरू नहीं किया जाता. इसके बाद, उन्हें आखिरी स्थिति में रखा जाता है. b/131557151
  • setMaxLifecycle(Lifecycle.State.CREATED) का इस्तेमाल करने पर, फ़्रैगमेंट का व्यू सही तरीके से मिट जाएगा. aosp/954180

वर्शन 1.1.0-alpha07

25 अप्रैल, 2019

androidx.fragment:fragment:1.1.0-alpha07, androidx.fragment:fragment-ktx:1.1.0-alpha07, और androidx.fragment:fragment-testing:1.1.0-alpha07 रिलीज़ हुए हैं. इस वर्शन में शामिल कमिट को यहां देखा जा सकता है.

नई सुविधाएं

  • अब FragmentTransaction पर setMaxLifecycle() को कॉल करके, किसी फ़्रैगमेंट के लिए ज़्यादा से ज़्यादा लाइफ़साइकल स्थिति सेट की जा सकती है. यह अब काम नहीं करने वाले setUserVisibleHint() की जगह ले लेगा. FragmentPagerAdapter और FragmentStatePagerAdapter में नया कंस्ट्रक्टर है, जो आपको नए बिहेवियर पर स्विच करने देता है. (b/129780800)

एपीआई में किए गए बदलाव

  • FragmentScenario पर moveToState(STARTED) को अब सिर्फ़ एपीआई 24 के बाद के वर्शन वाले डिवाइसों पर कॉल किया जा सकता है. (b/129880016)

व्यवहार में बदलाव

  • b/129907905 की वजह से, होस्टिंग गतिविधि को फिर से बनाने पर, बैक स्टैक पर मौजूद फ़्रैगमेंट को onCreateView() पर कॉलबैक नहीं मिलेगा. अब onCreateView() को सिर्फ़ तब कॉल किया जाएगा, जब फ़्रैगमेंट दिखने लगेगा. इसका मतलब है कि पिछली गतिविधियों का पॉप-अप दिखने पर.

गड़बड़ियां ठीक की गईं

  • एक्सएमएल में <fragment> टैग और FragmentActivity या AppCompatActivity के contentLayoutId कंस्ट्रक्टर का इस्तेमाल करने पर आने वाली गड़बड़ी ठीक की गई. (b/129907905)
  • उस समस्या को ठीक किया गया है जिसमें कॉन्फ़िगरेशन में बदलाव के बाद, बैक स्टैक के फ़्रैगमेंट कम से कम CREATED पर नहीं ले जाए जाएंगे. इसकी वजह से, ViewModels और चाइल्ड सेव किए गए फ़्रैगमेंट सही तरीके से नष्ट नहीं हो पाएंगे. (b/129593351)
  • restoreSaveState में, इंस्टेंस स्थिति सेव होने के बाद, सेव किए गए फ़्रैगमेंट के डिसिंक की वजह से होने वाले क्रैश को ठीक किया गया है. (b/130433793) (aosp/947824)
  • जिन समस्याओं को ठीक कर दिया गया है उनमें FragmentManager के बैक स्टैक होने पर, फ़्रैगमेंट लाइफ़साइकल के साथ जोड़े गए OnBackPressedCallback को कॉल नहीं किया जाता. ज़्यादा जानकारी के लिए, androidx.activity 1.0.0-alpha07 देखें. (aosp/948209)
  • फ़्रैगमेंट अब ऐनिमेशन के लिए LAYER_TYPE_HARDWARE लागू नहीं करते. अगर आपको खास तौर पर हार्डवेयर लेयर वाले ऐनिमेशन की ज़रूरत है, तो कृपया इसे अपने ऐनिमेशन के हिस्से के तौर पर सेट करें. (b/129486478)

वर्शन 1.1.0-alpha06

3 अप्रैल, 2019

androidx.fragment:fragment:1.1.0-alpha06, androidx.fragment:fragment-ktx:1.1.0-alpha06, और androidx.fragment:fragment-testing:1.1.0-alpha06 रिलीज़ हुए हैं. इस वर्शन में शामिल कमिट को यहां देखा जा सकता है.

नई सुविधाएं

  • फ़्रैगमेंट Manager से मिलने वाले अपवादों में, अब मैसेज में फ़्रैगमेंट का नाम शामिल किया जाता है. (b/67759402)

एपीआई में किए गए बदलाव

  • Fragment और FragmentActivity में अब एक दूसरा कंस्ट्रक्टर है, जो @LayoutRes int लेता है. यह आपकी क्लास की जानकारी देने के पिछले व्यवहार को @ContentView से बदल देता है. यह तरीका ऐप्लिकेशन और लाइब्रेरी मॉड्यूल, दोनों पर काम करता है. (b/128352521)
  • फ़्रैगमेंट ऐक्टिविटी के onActivityResult() को अब @CallSuper के तौर पर सही तरीके से मार्क कर दिया गया है. (b/127971684)
  • फ़्रैगमेंट फ़ैक्ट्री का instantiate वाला वह तरीका जो तर्क के साथ बंडल लेता है, उस पर रोक लगा दी गई है. ऐसे में, ऐप्लिकेशन को ऐसे नए instantiate ओवरलोड का इस्तेमाल करना चाहिए जिसमें बंडल न हो. (b/128836103)
  • FragmentScenario तरीकों के बारे में अब @StyleRes के साथ सही तरीके से एनोटेट किया गया है. (aosp/924193)
  • FragmentTabHost के इस्तेमाल पर रोक लगा दी गई है. (b/127971835)
  • फ़्रैगमेंट ऐक्टिविटी का getThemedContext() हटा दिया गया है. (aosp/934078)

गड़बड़ियां ठीक की गईं

  • 1.1.0-alpha05 में रिग्रेशन ठीक किया गया जिसकी वजह से इनकमिंग फ़्रैगमेंट स्क्रीन पर फ़्लैश हो गया. (b/129405432)
  • उस समस्या को ठीक किया गया है जिसकी मदद से, कार्रवाई के लिए groupbackStack+replace+popBackStack सीरीज़ के बाद मुख्य नेविगेशन फ़्रैगमेंट खो जाता है. (b/124332597)
  • फ़्रैगमेंट की स्थिति को पहले जैसा करते समय, आपकी ऐक्टिविटी पर @ContentView कंस्ट्रक्टर का इस्तेमाल करते समय आने वाली गड़बड़ी ठीक की गई है. (b/127313094)
  • मौजूदा टारगेट फ़्रैगमेंट को किसी ऐसे फ़्रैगमेंट से बदलते समय जिसे अभी तक फ़्रैगमेंट मैनेजर से अटैच नहीं किया गया है, setTargetFragment() का लॉजिक ठीक किया गया. (aosp/932156)

वर्शन 1.1.0-alpha05

13 मार्च, 2019

androidx.fragment:fragment:1.1.0-alpha05, androidx.fragment:fragment-ktx:1.1.0-alpha05, और androidx.fragment:fragment-testing:1.1.0-alpha05 रिलीज़ हुए हैं. इस वर्शन में शामिल कमिट की पूरी सूची यहां देखी जा सकती है.

नई सुविधाएं

  • @ContentView एनोटेशन लुकअप को अब कैश मेमोरी में सेव किया गया है (b/123709449)

व्यवहार में बदलाव

  • किसी दूसरे फ़्रैगमेंट मैनेजर से अटैच किए गए फ़्रैगमेंट के साथ, remove(), hide(), show(), detach(), और setPrimaryNavigationFragment() को कॉल करने पर, अब बिना किसी रुकावट के (aosp/904301) के बजाय IllegalStateException की गड़बड़ी होती है

गड़बड़ियां ठीक की गईं

  • FragmentActivity के लिए onNewIntent अब @CallSuper (b/124120586) के साथ सही तरीके से मार्क हो गया है
  • उस समस्या को ठीक कर दिया गया है जिसकी वजह से getDialog().dismiss() या getDialog().cancel() (b/126563750) का इस्तेमाल करते समय, DialogFragment के onDismiss() को दो बार कॉल किया जा सकता था

वर्शन 1.1.0-alpha04

7 फ़रवरी, 2019

androidx.fragment:fragment 1.1.0-alpha04, androidx.fragment:fragment-ktx 1.1.0-alpha04, और androidx.fragment:fragment-testing 1.1.0-alpha04 रिलीज़ हुए हैं.

नई सुविधाएं

  • @ContentView क्लास एनोटेशन के लिए सहायता जोड़ी गई. इससे आपको यह बताने की अनुमति मिलती है कि onCreateView() की जगह कौनसी लेआउट एक्सएमएल फ़ाइल को, विकल्प के तौर पर इनफ़्लेट किया जाना चाहिए. हमारा सुझाव है कि आप इससे जुड़े काम onViewCreated() में देखें. (aosp/837619)
  • fragment-testing अब androidx.test:core-ktx के 1.1.0 स्टेबल वर्शन (b/121209673) पर निर्भर करता है
  • अब आपके पास FragmentScenario के साथ openActionBarOverflowOrOptionsMenu का इस्तेमाल करके, फ़्रैगमेंट के होस्ट किए गए विकल्प मेन्यू की जांच करने का विकल्प है (b/121126668)

एपीआई में किए गए बदलाव

  • ऐसा requireArguments() तरीका जोड़ा गया जो @NonNull Bundle दिखाता है या IllegalStateException (b/121196360) देता है
  • यह जानकारी जोड़ी गई है कि getLifecycle(), getViewLifecycleOwner(), और getViewLifecycleOwnerLiveData() को बदला नहीं जाना चाहिए. साथ ही, इन्हें अगली रिलीज़ में फ़ाइनल बना दिया जाएगा. अगर इस तरीके को बदला जा रहा है, तो कृपया सुविधा के लिए अनुरोध करें. (aosp/880714)
  • यह जानकारी जोड़ी गई है कि getViewModelStore() को बदला नहीं जाना चाहिए और इसे अगली रिलीज़ में फ़ाइनल कर दिया जाएगा. अगर इस तरीके को बदला जा रहा है, तो कृपया सुविधा के लिए अनुरोध करें. (aosp/880713)
  • फ़्रैगमेंट की पिछली रिलीज़ के साथ बाइनरी कंपैटबिलिटी से जुड़ी समस्या ठीक की गई है. (aosp/887877) (aosp/889834)

गड़बड़ियां ठीक की गईं

  • जब आप null को setTargetFragment() को पास करते हैं, तो टारगेट फ़्रैगमेंट सही तरीके से हट जाते हैं. (aosp/849969)
  • उस समस्या को ठीक किया गया है जिसकी वजह से, onDestroy() में या उसके बाद कभी-कभी टारगेट फ़्रैगमेंट उपलब्ध नहीं होते थे. (b/122312935)
  • Dialogफ़्रैगमेंट का onखारिज() अब onDestroy() से पहले कॉल किया जाता है. (aosp/874133) (aosp/890734)

वर्शन 1.1.0-alpha03

17 दिसंबर, 2018

नई सुविधाएं

  • फ़्रैगमेंट अब BundleSavedStateRegistryOwner को लागू करता है. साथ ही, यह हाल ही में रिलीज़ की गई सेव की गई स्टेट लाइब्रेरी [aosp/824380] पर निर्भर करता है
  • मौजूदा गतिविधि से जुड़े ViewModels को फिर से पाने के लिए, by activityViewModels Kotlin प्रॉपर्टी डेलिगेट जोड़ा गया है [b/119050253]
  • by viewModels Kotlin प्रॉपर्टी डेलिगेट का दायरा बढ़ाया गया है, ताकि ViewModelStoreOwner को पाने के लिए, लैम्डा तरीके का इस्तेमाल किया जा सके. इससे आपको val viewModel: MyViewModel by viewModels(::requireParentFragment) [b/119050253] जैसे कोड का इस्तेमाल करके पैरंट फ़्रैगमेंट या अन्य कस्टम ViewModelStoreOwner में पास करने की सुविधा मिलती है

एपीआई में किए गए बदलाव

  • FragmentScenario में अब आपको Theme.AppCompat [b/119054431] जैसी कोई थीम तय करने की सुविधा मिलती है. यह बदलाव नुकसान पहुंचा सकता है.
  • ऐसा requireView() तरीका जोड़ा गया है जो @NonNull View दिखाता है या IllegalStateException [b/120241368] दिखाता है
  • ऐसा requireParentFragment() तरीका जोड़ा गया है जो @NonNull Fragment दिखाता है या IllegalStateException [b/112103783] दिखाता है

गड़बड़ियां ठीक की गईं

  • ठीक किया गया legalStateअपवाद: स्टेटस सेव नहीं किया जा सका b/120814739
  • सेव की गई इंस्टेंस स्थिति से वापस लाए जा रहे फ़्रैगमेंट को अब हमेशा शून्य नहीं वाला Bundle [b/119794496] मिलेगा
  • फिर से जोड़े जाने पर हटाए गए फ़्रैगमेंट अपने Lifecycle ऑब्जेक्ट का फिर से इस्तेमाल नहीं करते [b/118880674]

वर्शन 1.1.0-alpha02

3 दिसंबर, 2018

नई सुविधाएं

  • फ़्रैगमेंट सिनेमैटिक के Kotlin एक्सटेंशन की मदद से, अब FragmentFactory इंस्टेंस में पास करने के विकल्प के तौर पर, फ़्रैगमेंट कंस्ट्रक्शन के लिए लैम्डा का इस्तेमाल किया जा सकता है. (aosp/812913)

गड़बड़ियां ठीक की गईं

  • बैक स्टैक (b/119256498) पर नेस्ट किए गए फ़्रैगमेंट का इस्तेमाल करते समय, गैर-कानूनी स्टेट अपवाद को ठीक किया गया
  • FragmentFactory (aosp/820540) के साथ FragmentScenario.recreate() का इस्तेमाल करने पर होने वाले क्रैश को ठीक किया गया
  • फ़्रैगमेंट को हटाने के बाद, टारगेट फ़्रैगमेंट को ऐक्सेस न करने की समस्या को ठीक किया गया है (aosp/807634)

वर्शन 1.1.0-alpha01

5 नवंबर, 2018

यह YouTube की पहली रिलीज़ है fragment-testing आर्टफ़ैक्ट और FragmentScenario, जो आर्टफ़ैक्ट की इमारत के androidx.test:कोर एपीआई. ज़्यादा जानकारी के लिए, फ़्रैगमेंट टेस्टिंग दस्तावेज़ देखें.

नई सुविधाएं

  • अलग-अलग फ़्रैगमेंट की जांच करने के लिए, नई फ़्रैगमेंट स्थिति की क्लास.
  • अब किसी भी FragmentManager पर FragmentFactory सेट करके, यह तय किया जा सकता है कि नए फ़्रैगमेंट इंस्टेंस इंस्टैंशिएट किए जाते हैं.
  • वापस पाने के लिए, by viewModels() Kotlin प्रॉपर्टी का नया डेलिगेट जोड़ा गया फ़्रैगमेंट से ViewModels.
  • लंबित इनपुट इवेंट (जैसे कि क्लिक) अब फ़्रैगमेंट के onStop().

एपीआई में किए गए बदलाव

  • फ़्रैगमेंट एपीआई में, शून्य हो जाने की स्थिति के एनोटेशन में बड़े पैमाने पर बढ़ोतरी की गई है की जगह है.

गड़बड़ियां ठीक की गईं

  • उस समस्या को ठीक करें जिसकी वजह से LiveData में फ़्रैगमेंट की कार्रवाइयां पूरी नहीं हो सकीं (b/77944637)

आम समस्याएं

  • टारगेट फ़्रैगमेंट को ऐक्सेस नहीं किया जा सकता फ़्रैगमेंट मैनेजर.
  • fragment-testing, androidx.test:core:1.0.0-beta01 पर निर्भर करता है, न कि सही androidx.test:core:1.0.0.