নেভিগেশন
সর্বশেষ আপডেট | স্থিতিশীল রিলিজ | মুক্তির প্রার্থী | বিটা রিলিজ | আলফা রিলিজ |
---|---|---|---|---|
জুলাই 24, 2024 | 2.7.7 | - | 2.8.0-beta06 | - |
নির্ভরতা ঘোষণা করা
নেভিগেশনের উপর নির্ভরতা যোগ করতে, আপনাকে অবশ্যই আপনার প্রকল্পে Google Maven সংগ্রহস্থল যোগ করতে হবে। আরও তথ্যের জন্য Google এর Maven সংগ্রহস্থল পড়ুন।
আপনার অ্যাপ বা মডিউলের জন্য build.gradle
ফাইলে আপনার প্রয়োজনীয় আর্টিফ্যাক্টগুলির জন্য নির্ভরতা যোগ করুন:
গ্রোভি
dependencies { def nav_version = "2.7.7" // Java language implementation implementation "androidx.navigation:navigation-fragment:$nav_version" implementation "androidx.navigation:navigation-ui:$nav_version" // Kotlin implementation "androidx.navigation:navigation-fragment-ktx:$nav_version" implementation "androidx.navigation:navigation-ui-ktx:$nav_version" // Feature module Support implementation "androidx.navigation:navigation-dynamic-features-fragment:$nav_version" // Testing Navigation androidTestImplementation "androidx.navigation:navigation-testing:$nav_version" // Jetpack Compose Integration implementation "androidx.navigation:navigation-compose:$nav_version" }
কোটলিন
dependencies { val nav_version = "2.7.7" // Java language implementation implementation("androidx.navigation:navigation-fragment:$nav_version") implementation("androidx.navigation:navigation-ui:$nav_version") // Kotlin implementation("androidx.navigation:navigation-fragment-ktx:$nav_version") implementation("androidx.navigation:navigation-ui-ktx:$nav_version") // Feature module Support implementation("androidx.navigation:navigation-dynamic-features-fragment:$nav_version") // Testing Navigation androidTestImplementation("androidx.navigation:navigation-testing:$nav_version") // Jetpack Compose Integration implementation("androidx.navigation:navigation-compose:$nav_version") }
নিরাপদ Args
আপনার প্রোজেক্টে Safe Args যোগ করতে, আপনার শীর্ষ স্তরের build.gradle
ফাইলে নিম্নলিখিত classpath
অন্তর্ভুক্ত করুন:
গ্রোভি
buildscript { repositories { google() } dependencies { def nav_version = "2.7.7" classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version" } }
কোটলিন
buildscript { repositories { google() } dependencies { val nav_version = "2.7.7" classpath("androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version") } }
আপনাকে অবশ্যই দুটি উপলব্ধ প্লাগইনগুলির মধ্যে একটি প্রয়োগ করতে হবে৷
জাভা বা মিশ্র জাভা এবং কোটলিন মডিউলগুলির জন্য উপযুক্ত জাভা ভাষার কোড তৈরি করতে, এই লাইনটি আপনার অ্যাপ বা মডিউলের build.gradle
ফাইলে যোগ করুন:
গ্রোভি
plugins { id 'androidx.navigation.safeargs' }
কোটলিন
plugins { id("androidx.navigation.safeargs") }
বিকল্পভাবে, কোটলিন-কেবল মডিউলগুলির জন্য উপযুক্ত কোটলিন কোড তৈরি করতে যোগ করুন:
গ্রোভি
plugins { id 'androidx.navigation.safeargs.kotlin' }
কোটলিন
plugins { id("androidx.navigation.safeargs.kotlin") }
AndroidX এ স্থানান্তরিত করার জন্য আপনার gradle.properties
ফাইলে android.useAndroidX=true
থাকতে হবে।
Kotlin এক্সটেনশন ব্যবহার করার তথ্যের জন্য, ktx ডকুমেন্টেশন দেখুন।
নির্ভরতা সম্পর্কে আরও তথ্যের জন্য, বিল্ড নির্ভরতা যুক্ত করুন দেখুন।
প্রতিক্রিয়া
আপনার প্রতিক্রিয়া জেটপ্যাককে আরও ভাল করতে সাহায্য করে। আপনি যদি নতুন সমস্যা আবিষ্কার করেন বা এই লাইব্রেরির উন্নতির জন্য ধারনা পান তাহলে আমাদের জানান। আপনি একটি নতুন তৈরি করার আগে অনুগ্রহ করে এই লাইব্রেরিতে বিদ্যমান সমস্যাগুলি দেখুন৷ আপনি তারকা বোতামে ক্লিক করে একটি বিদ্যমান সমস্যায় আপনার ভোট যোগ করতে পারেন।
আরও তথ্যের জন্য ইস্যু ট্র্যাকার ডকুমেন্টেশন দেখুন।
সংস্করণ 2.8
সংস্করণ 2.8.0-beta06
জুলাই 24, 2024
androidx.navigation:navigation-*:2.8.0-beta06
প্রকাশিত হয়েছে। সংস্করণ 2.8.0-beta06-এ এই কমিট রয়েছে।
বাগ ফিক্স
- একটি সমস্যা সমাধান করা হয়েছে যেখানে
WrongStartDestinationType
lint চেক ক্লাস টাইপে পাস করা কম্পানিয়ন অবজেক্টের জন্য চেক করেনি, যার ফলে লিন্ট ত্রুটি সনাক্ত করতে ব্যর্থ হয়েছে। ( I92b09 )
সংস্করণ 2.8.0-beta05
10 জুলাই, 2024
androidx.navigation:navigation-*:2.8.0-beta05
প্রকাশিত হয়েছে। সংস্করণ 2.8.0-beta05-এ এই কমিট রয়েছে।
বাগ ফিক্স
- নেস্টেড
NavGraphs
একইstartDestination
রুট শেয়ার করলেsingleTop
নেভিগেশন ক্র্যাশ ঠিক করুন। ( I17b94 , b/294408596 )
সংস্করণ 2.8.0-beta04
জুন 26, 2024
androidx.navigation:navigation-*:2.8.0-beta04
প্রকাশিত হয়েছে। সংস্করণ 2.8.0-beta04-এ এই কমিট রয়েছে।
বাগ ফিক্স
- ন্যাভিগেশন এখন পাথ আর্গুমেন্টে খালি স্ট্রিং সহ নেভিগেট সমর্থন করে। ( Ic5dbd , b/339481310 )
-
@Serializable(with =...)
এর মাধ্যমে সরাসরি ক্লাস ফিল্ডে ঘোষিত কাস্টম সিরিয়ালাইজারদের জন্য ত্রুটি বার্তা উন্নত করুন যে এটি বর্তমানে একটি অসমর্থিত বৈশিষ্ট্য। ( I052b0 , b/341319151 ) -
SavedStateHandleFactory
টেস্ট এপিআই এখন নন-অ্যান্ড্রয়েড পরীক্ষায় ব্যবহার করা যেতে পারে কিন্তু বান্ডেলের সাথে আর্গুমেন্ট পার্সিং সমর্থন করার জন্য Robolectric প্রয়োজন হবে। ( I76cdc , b/340966212 ) - কম্পোজে টাইপ-সেফ নেভিগেশন ব্যবহার করে প্রসেস ডেথের পরে অ্যাপ পুনরায় চালু করার সময় পুনরুদ্ধারের অবস্থা থেকে স্থির ক্র্যাশ। ( IA8f38 , b/341801005 )
- নেভিগেশন কম্পোজে একটি সমস্যা সমাধান করা হয়েছে যেখানে ভবিষ্যদ্বাণীমূলক ব্যাক জেসচার বাতিল করার পরে, ব্যবহারকারী যে
NavBackStackEntry
ফিরে আসে তা পুনরায়RESUMED
লাইফসাইকেল স্টেটে ফিরে আসে না। এটি নিশ্চিত করে যে প্রত্যাবর্তন গন্তব্যটি ফ্লিং করার পরে জায়গায় স্ন্যাপ করার পরিবর্তে সঠিকভাবে ফিরে আসে। ( I97a0c , b/346608857 ) - নেভিগেশন কম্পোজের সাথে ভবিষ্যদ্বাণীমূলক ব্যাক ব্যবহার করার সময়, পপ করা গন্তব্যে এখন সঠিক z-অর্ডার থাকবে, সঠিকভাবে ইনকামিং গন্তব্যের উপরে অ্যানিমেটিং হবে। ( I2077b , b/345993681 )
সংস্করণ 2.8.0-beta03
জুন 12, 2024
androidx.navigation:navigation-*:2.8.0-beta03
প্রকাশিত হয়েছে। 2.8.0-beta03 সংস্করণে এই কমিটগুলি রয়েছে।
এপিআই পরিবর্তন
-
CollectionNavType
একটি নতুন বিমূর্তemptyCollection()
পদ্ধতি রয়েছে। একটি যুক্তি হিসাবে পাস করা একটি খালি সংগ্রহ পরিচালনা করতে এটি ওভাররাইড করুন৷ ( Ie4d84 , b/341723133 )
বাগ ফিক্স
- চূড়ান্ত আউটপুট Uri এনকোড করা উচিত হাইলাইট করার জন্য
NavType.serializeAsValue
এবংserializeAsValues
এ ডকুমেন্টেশন যোগ করা হয়েছে। ( Ida6bd , b/344943214 ) - একটি নাল
CollectionNavType
আর্গুমেন্টের সাথেtoRoute<T>
কল করার সময় ক্র্যাশ সংশোধন করা হয়েছে। একটি নালCollectionNavType
দিয়ে নেভিগেট করার সময়, আউটপুট আর্গুমেন্ট হবে আপনার সিরিয়ালাইজেবল ক্লাসে ঘোষিত ডিফল্ট মান, অথবা যদি কোনো ডিফল্ট মান না থাকে তাহলেemptyCollection()
এর রিটার্ন মান হবে। ( I84158 , Id630f , b/342672856 )
সংস্করণ 2.8.0-beta02
29 মে, 2024
androidx.navigation:navigation-*:2.8.0-beta02
প্রকাশিত হয়েছে। 2.8.0-beta02 সংস্করণে এই কমিটগুলি রয়েছে।
বাগ ফিক্স
- একটি বাতিলযোগ্য কাস্টম
NavType
সহNavBackStackEntry.toRoute
ব্যবহার করার সময় স্থিরClassCastException
ক্র্যাশ। ( I1c29b , b/342239473 ) - স্থির নেভিগেশন ব্যাক স্ট্যাক স্টেট পুনরুদ্ধার সমস্যাগুলি যখন একটি ব্যাক স্ট্যাক এন্ট্রি পুনরুদ্ধার করার চেষ্টা করে যা বর্তমান গন্তব্য থেকে আইডির মাধ্যমে পৌঁছানো যায় না। যেহেতু রুটগুলি আইডি দ্বারা সমর্থিত, তাই রুটগুলির সাথে তৈরি গন্তব্যগুলিও প্রভাবিত হয়েছিল৷ এটি একই অন্তর্নিহিত সমস্যা ছিল
clearBackStack()
কল করার কারণে সৃষ্ট একটি ক্র্যাশও ঠিক করে। ( I423c3 , b/339908057 )
সংস্করণ 2.8.0-beta01
14 মে, 2024
androidx.navigation:navigation-*:2.8.0-beta01
প্রকাশিত হয়েছে। সংস্করণ 2.8.0-beta01-এ এই কমিট রয়েছে।
এপিআই পরিবর্তন
-
SavedStateHandle.toRoute()
এখন কাস্টম আর্গুমেন্ট প্রকারের জন্য একটিtypeMap
প্যারামিটার নেয়। ( IE39fb , b/339026523 ) - একটি Kotlin Serializable অবজেক্ট থেকে একটি
SavedStateHandle
তৈরি করতেnavigation-testing
একটি পরীক্ষা API যোগ করা হয়েছে। ( Id4867 , b/339080702 )
বাগ ফিক্স
- ন্যাভিগেশন Kotlin DSL ফাংশন জন্য অনুপস্থিত প্যারামিটার ডক্স যোগ করা হয়েছে. ( I26a36 )
সংস্করণ 2.8.0-alpha08
1 মে, 2024
androidx.navigation:navigation-*:2.8.0-alpha08
প্রকাশিত হয়েছে। সংস্করণ 2.8.0-alpha08-এ এই কমিট রয়েছে।
নেভিগেশন রচনায় নিরাপদ Args
- কোটলিন সিরিয়ালাইজেশনের উপর ভিত্তি করে ন্যাভিগেশন কম্পোজ এবং ন্যাভিগেশন কোটলিন ডিএসএল ব্যবহারকারীদের জন্য কম্পাইল টাইপ সেফটি সমর্থন করার কাজটি সম্পন্ন হয়েছে এবং পূর্বে পরীক্ষামূলক APIগুলি এখন স্থিতিশীল। ( Iea94d , I0eb0d , I873b7 , I3a64b , I6c3a2 , I11f0b , Ic3032 , I8d394 , I95710 , Ice060 , Id0e55 , I45f8b , Id50 , Id50 , Id50 , b/188693139 )
এই কার্যকারিতা টাইপ নিরাপদ বস্তু এবং ডেটা ক্লাসের মাধ্যমে আপনার নেভিগেশন গ্রাফে গন্তব্যগুলি সংজ্ঞায়িত করার অনুমতি দেওয়ার জন্য কোটলিন সিরিয়ালাইজেশন ব্যবহার করে:
// Define a home destination that doesn't take any arguments
@Serializable
object Home
// Define a profile destination that takes an ID
@Serializable
data class Profile(val id: String)
// Now define your NavHost using type safe objects
NavHost(navController, startDestination = Home) {
composable<Home> {
HomeScreen(onNavigateToProfile = { id ->
navController.navigate(Profile(id))
})
}
composable<Profile> { backStackEntry ->
val profile: Profile = backStackEntry.toRoute()
ProfileScreen(profile)
}
}
আরও তথ্যের জন্য নেভিগেশন কম্পোজ মিট টাইপ সেফটি ব্লগ পোস্ট দেখুন।
নতুন বৈশিষ্ট
-
navigation-fragment-compose
আর্টিফ্যাক্ট এখন একটিComposableFragment
মধ্যে কম্পোজযোগ্য পদ্ধতিতে একটিLocalFragment
কম্পোজিশন প্রদান করে। ( if35e5 ) -
NavType
এখন Int, স্ট্রিং, বুলিয়ান, ফ্লোট এবং লং তালিকার জন্য অন্তর্নির্মিত সমর্থন রয়েছে। ( I4b6dd , Ia914c , b/188693139 )
সংস্করণ 2.8.0-alpha07
এপ্রিল 17, 2024
androidx.navigation:navigation-*:2.8.0-alpha07
প্রকাশিত হয়েছে। সংস্করণ 2.8.0-alpha07-এ এই কমিট রয়েছে।
নতুন বৈশিষ্ট
একটি নতুন
navigation-fragment-compose
আর্টিফ্যাক্ট যোগ করে যাতেNavHostFragment
এর একটিComposableNavHostFragment
বিকল্প রয়েছে যা আপনাকে আপনার ন্যাভিগেশন XML ফাইলগুলিতেcomposable
গন্তব্য যোগ করতে দেয়। প্রতিটিcomposable
গন্তব্য অবশ্যই একটি শীর্ষ-স্তরের হিসাবে প্রকাশ করতে হবে, কোন যুক্তি নেই@Composable
পদ্ধতি যার সম্পূর্ণ যোগ্য নাম প্রতিটি গন্তব্যেandroid:name
বৈশিষ্ট্য হিসাবে ব্যবহৃত হয়। এই গন্তব্যগুলির মধ্যে একটিতে নেভিগেট করার সময়, সংমিশ্রণযোগ্য বিষয়বস্তু প্রদর্শনের জন্য একটি ধারণকৃত খণ্ড তৈরি করা হয়। ( I0ef2e , b/265480755 )// In HomeScreen.kt @Composable fun HomeScreen() { // Your Composable content here }
// In your navigation.xml <composable android:id="@+id/home_screen" android:name="com.example.HomeScreenKt\$HomeScreen" />
এপিআই পরিবর্তন
- কোটলিন সিরিয়ালাইজেশনের উপর ভিত্তি করে একটি পদ্ধতি ব্যবহার করে ন্যাভিগেশন রচনায় নিরাপদ আর্গসের জন্য সমর্থন অব্যাহত রয়েছে। এই API গুলি শেষ হয়নি এবং
ExperimentalSafeArgsApi
টীকা দিয়ে চিহ্নিত করা হয়েছে৷ ভবিষ্যতে রিলিজে সম্পূর্ণ API পৃষ্ঠ সম্পূর্ণ হলে এই টীকাটি সরানো হবে। ( Iefd95 , I409c8 , I5b5ac , I7e753 , I960f8 , I3eabd , I8ed5a , Ied2c9 , I9b73c , I554db , Ib3aba , Ia668d , b/1883 )
সংস্করণ 2.8.0-alpha06
3 এপ্রিল, 2024
androidx.navigation:navigation-*:2.8.0-alpha06
প্রকাশিত হয়েছে। সংস্করণ 2.8.0-alpha06-এ এই কমিট রয়েছে।
এপিআই পরিবর্তন
- কোটলিন সিরিয়ালাইজেশনের উপর ভিত্তি করে একটি পদ্ধতি ব্যবহার করে ন্যাভিগেশন রচনায় নিরাপদ আর্গসের জন্য সমর্থন শুরু হয়েছে। এই API গুলি শেষ হয়নি এবং
ExperimentalSafeArgsApi
টীকা দিয়ে চিহ্নিত করা হয়েছে৷ ভবিষ্যতে রিলিজে সম্পূর্ণ API পৃষ্ঠ সম্পূর্ণ হলে এই টীকাটি সরানো হবে। ( I644e7 , I98896 , I2a1c5 , I43a51 , I836a1 , Ic5eec , I39407 , I24e41 , If9e14 , Ibb13e , If44d3 , Icb70f , I241 , I842 , I831 , I262aa , I7de99 , I35990 , I1033d , b/188693139 )
বাগ ফিক্স
-
NavHost
এখনAlignment.TopStart
ডিফল্ট কন্টেন্ট অ্যালাইনমেন্ট আর্গুমেন্ট হিসেবে ব্যবহার করেছে। এটি এটিকেAnimatedContent
জন্য ডিফল্টের সাথে সঙ্গতিপূর্ণ করে এবং কেন্দ্র স্থানান্তর থেকে একটি অপ্রত্যাশিত স্কেলের কিছু দৃষ্টান্ত ঠিক করে। ( I09e72 , b/330111602 ) - নেভিগেশন কম্পোজ ব্যবহার করার সময় ভবিষ্যদ্বাণীমূলক পিছনের অঙ্গভঙ্গিটি ফ্লিক করার সময়,
NavHost
এখন অবিলম্বে শেষ করার পরিবর্তে কাস্টম রূপান্তরটি সঠিকভাবে সম্পূর্ণ করবে। ( I99017 , b/327292110 )
সংস্করণ 2.8.0-alpha05
20 মার্চ, 2024
androidx.navigation:navigation-*:2.8.0-alpha05
প্রকাশিত হয়েছে। সংস্করণ 2.8.0-alpha05-এ এই কমিট রয়েছে।
নতুন বৈশিষ্ট
- আপনি এখন
defaultValue
এর উপর নির্ভর না করে সরাসরিstartDestination
রুটেNavGraph
এরstartDestination
এ আর্গুমেন্ট পাঠাতে পারেন। এটি নেস্টেডNavGraph
startDestinations
ক্ষেত্রেও প্রযোজ্য। ( I0e0b5 , b/109505019 , b/188693139 )
এপিআই পরিবর্তন
- নতুন বিমূর্ত
CollectionNavType<T>
ক্লাস যোগ করা হয়েছে, যা সংগ্রহ-ভিত্তিক আর্গুমেন্ট যেমন তালিকা, অ্যারে, মানচিত্রের জন্যNavType<T>
এর একটি সাবক্লাস। ( Ic6d63 , b/188693139 ) - সমস্ত ডিফল্ট
NavType
অ্যারে (IntArrayType
,LongArrayType
,FloatArrayType
,BoolArrayType
, এবংStringArrayType
) এখনCollectionNavType
( Idcf79 , b/188693139 ) টাইপের -
NavType
এখন একটি নতুন উন্মুক্তvalueEquals
API প্রদান করে যা নির্ধারণ করে যে একই ধরণের দুটি মান একে অপরের সমান কিনা। ( I6cb97 , b/327229511 )
বাগ ফিক্স
- ডিপ লিঙ্কে ক্যোয়ারী প্যারামিটারগুলি এখন স্ট্রিং-ভিত্তিক
NavTypes
এর জন্য বৈধ মান হিসাবে আর্গুমেন্ট নামের (যেমন{argName}
) চারপাশে কোঁকড়া বন্ধনী আকারে মানগুলিকে অনুমতি দেয়। এটি এমন একটি সমস্যার সমাধান করে যেখানে এই ধরনের মানটি সব ধরনের জন্য অবৈধ (বা মানের অনুপস্থিতি) বলে বিবেচিত হবে। ( I18302 , b/327274038 ) -
navigate
বাpopBackStack
মতো রুট সমর্থনকারীNavController
ফাংশনগুলি এখন অ্যারেNavTypes
এর আর্গুমেন্টে ভরা রুটগুলির সাথে সঠিকভাবে মেলে। ( IEA805 , b/327229511 )
সংস্করণ 2.8.0-alpha04
6 মার্চ, 2024
androidx.navigation:navigation-*:2.8.0-alpha04
প্রকাশিত হয়েছে। সংস্করণ 2.8.0-alpha04-এ এই কমিট রয়েছে।
নতুন বৈশিষ্ট
- আপনি এখন
composable
এবং/অথবাnavigation
ফাংশনগুলির জন্য প্রাথমিককরণের অংশ হিসাবে সংজ্ঞায়িত করে নেভিগেশন কম্পোজে আপনার ট্রানজিশনের জন্যSizeTranform
নির্দিষ্ট করতে পারেন। ( I91062 , b/296912651 )
বাগ ফিক্স
- একটি সমস্যা সমাধান করা হয়েছে যেখানে কম্পোজ নেভিগেশনে
NavHost
একটি অঙ্গভঙ্গি ছাড়াই সিস্টেম ব্যাক ব্যবহার করার সময় সঠিকভাবে রূপান্তর দেখাতে ব্যর্থ হয়েছে৷ ( Iceeae , b/325998468 )
সংস্করণ 2.8.0-alpha03
21 ফেব্রুয়ারি, 2024
androidx.navigation:navigation-*:2.8.0-alpha03
প্রকাশিত হয়েছে। সংস্করণ 2.8.0-alpha03 এই কমিট ধারণ করে।
এপিআই পরিবর্তন
-
NavBackStackEntry.savedStateHandle
এখন@MainThread
হিসাবে চিহ্নিত করা হয়েছে কারণ এটি এমন কোড ব্যবহার করে যা যাইহোক মূল থ্রেডে থাকা প্রয়োজন। ( Ibb988 , b/299523245 )
বাগ ফিক্স
- নেভিগেশনে একটি সমস্যা সমাধান করা হয়েছে যার কারণে
NavGraph
ViewModels খুব তাড়াতাড়িDESTROYED
হয়ে গেছে কারণ সংশ্লিষ্ট এন্ট্রিরViewModel
সংরক্ষিত অবস্থার অংশ ছিল না। ( Ib6bb7 , b/317581849 )
নির্ভরতা আপডেট
- নেভিগেশন রচনা এখন রচনা 1.7.0-alpha03 এর উপর নির্ভর করে।
সংস্করণ 2.8.0-alpha02
7 ফেব্রুয়ারি, 2024
androidx.navigation:navigation-*:2.8.0-alpha02
প্রকাশিত হয়েছে। সংস্করণ 2.8.0-alpha02 এই কমিট ধারণ করে।
নতুন বৈশিষ্ট
- ন্যাভিগেশন কম্পোজ এখন কম্পোজ-অ্যানিমেশন থেকে নতুন
SeekableTransitionState
API-এর মাধ্যমে প্রেডিকটিভ ইন-অ্যাপ-এর জন্য সমর্থন প্রদান করে। এটি আপনাকে সম্পূর্ণ অঙ্গভঙ্গির মাধ্যমে লেনদেন করার বা বাতিল করার সিদ্ধান্ত নেওয়ার আগে আপনার কাস্টম ট্রানজিশনের সাথে পূর্ববর্তী গন্তব্য দেখতে পিছনের অঙ্গভঙ্গি ব্যবহার করতে দেয়। ( I8b8e9 )
সংস্করণ 2.8.0-alpha01
24 জানুয়ারী, 2024
androidx.navigation:navigation-*:2.8.0-alpha01
প্রকাশিত হয়েছে। সংস্করণ 2.8.0-alpha01 এই কমিট ধারণ করে।
বাগ ফিক্স
- ফিক্সড
BackStackState
লিক যেখানে একটি গন্তব্যে একাধিকsaveState
কলের ফলে একাধিক রাজ্য সংরক্ষণ করা হবে, তবে শুধুমাত্র প্রথমটি পুনরুদ্ধার করা যেতে পারে। ( I598b0 , b/309559751 ) - একটি সমস্যা সমাধান করা হয়েছে যেখানে নন-স্ট্রিং আর্গুমেন্টগুলি সঠিকভাবে প্রদর্শিত হবে না যখন
NavigationUI
সাহায্যকারী ব্যবহার করে অ্যাপ বারগুলির শিরোনাম তৈরি করা হবে। ( #636 , b/316676794 )
নির্ভরতা আপডেট
- নেভিগেশন কম্পোজ এখন কম্পোজ
1.7.0-alpha01
এর উপর নির্ভর করে এমন একটি সমস্যা সমাধান করা যা একটি অপ্রত্যাশিত স্কেল অ্যানিমেশন সৃষ্টি করতে পারে। ( b/297258205 )
বাহ্যিক অবদান
- নন-স্ট্রিং আর্গুমেন্টের জন্য ডিসপ্লে সমস্যা সমাধান করার জন্য ধন্যবাদ সাইমন মার্কিসকে অ্যাপ বারগুলির শিরোনাম তৈরি করতে
NavigationUI
সাহায্যকারী ব্যবহার করার সময়।
সংস্করণ 2.7.7
সংস্করণ 2.7.7
7 ফেব্রুয়ারি, 2024
androidx.navigation:navigation-*:2.7.7
প্রকাশিত হয়েছে। সংস্করণ 2.7.7 এই কমিট ধারণ করে.
বাগ ফিক্স
- নেভিগেশন
2.8.0-alpha01
থেকে ব্যাকপোর্ট করা হয়েছে : ফিক্সডBackStackState
লিক যেখানে একাধিকsaveState()
একটি এককNavBackStackEntry
তে কল করলে একাধিক স্টেট সেভ হবে, কিন্তু শুধুমাত্র প্রথম সংরক্ষিত স্টেট পুনরুদ্ধার করা যাবে। ( I598b0 , b/309559751 ) - নেভিগেশন
2.8.0-alpha01
থেকে ব্যাকপোর্ট করা হয়েছে: অ্যাপ বারগুলির শিরোনাম তৈরি করতেNavigationUI
সাহায্যকারী ব্যবহার করার সময় নন-স্ট্রিং আর্গুমেন্টগুলি সঠিকভাবে প্রদর্শিত হবে না এমন একটি সমস্যা সমাধান করা হয়েছে। ( #636 , b/316676794 )
বাহ্যিক অবদান
- নন-স্ট্রিং আর্গুমেন্টের জন্য ডিসপ্লে সমস্যা সমাধান করার জন্য ধন্যবাদ সাইমন মার্কিসকে অ্যাপ বারগুলির শিরোনাম তৈরি করতে
NavigationUI
সাহায্যকারী ব্যবহার করার সময়।
সংস্করণ 2.7.6
সংস্করণ 2.7.6
13 ডিসেম্বর, 2023
androidx.navigation:navigation-*:2.7.6
প্রকাশিত হয়েছে। সংস্করণ 2.7.6-এ এই কমিট রয়েছে।
বাগ ফিক্স
-
NavGraph
equals()
ফাংশন এখন শুধুমাত্র কলিং এর পরিবর্তে অন্য গ্রাফের নোডগুলিকে সঠিকভাবে বিবেচনা করে। এটি নিশ্চিত করবে যে বিভিন্ন আইডি সহ নোডের গ্রাফগুলি আর সমান বলে বিবেচিত হবে না ( I401cb , b/311414915 )
সংস্করণ 2.7.5
সংস্করণ 2.7.5
নভেম্বর 1, 2023
androidx.navigation:navigation-*:2.7.5
প্রকাশিত হয়েছে। সংস্করণ 2.7.5 এই কমিট ধারণ করে.
কর্মক্ষমতা উন্নতি
- দুটি গ্রাফ তুলনা করার কর্মক্ষমতা (সময় এবং বরাদ্দের সংখ্যা উভয় ক্ষেত্রেই) ব্যাপকভাবে উন্নত হয়েছে। এর মানে হল যে
setGraph
মতো কলগুলি যা অভ্যন্তরীণভাবে বিদ্যমান গ্রাফের সাথে নতুন গ্রাফের তুলনা করে তা অনেক দ্রুত হয় এবং এর ফলে কম এড়িয়ে যাওয়া ফ্রেম হয়। এই উন্নতির দিকে পরিচালিত পুঙ্খানুপুঙ্খ বিশ্লেষণের জন্য আপনাকে ধন্যবাদ Michał Z। ( I6ad62 ) -
NavHost
এখন আপডেট হওয়া অবস্থা পড়ার জন্য দ্বিতীয় পাসের জন্য অপেক্ষা করার পরিবর্তে প্রথম কম্পোজিশন পাসে শুরুর গন্তব্য রেন্ডার করবে। ( I439a7 , b/304852206 )
বাগ ফিক্স
- একটি সমস্যা সমাধান করা হয়েছে যেখানে আপনার ব্যাক স্ট্যাক পপ করা হবে যদি আপনি একই গ্রাফের সাথে
setGraph
একাধিকবার কল করেন শুধুমাত্র যদি আপনার গ্রাফে দুটি গন্তব্য লিঙ্ক করার একটি অ্যাকশন থাকে। ( Ieaed7 ) - যে ডায়ালগগুলি নেভিগেট করা হয়েছিল এবং দ্রুত পর্যায়ক্রমে খারিজ করা হয়েছিল সেগুলি আর
NavController.visibleEntries
এর তালিকায় লিক হবে না৷ ( I67586 , b/287969970 ) - যখন একটি এন্ট্রি পপ করা হয় একটি কনফিগারেশন পরিবর্তন দ্বারা অনুসরণ করা হয়,
saveState
মিথ্যা হলে এন্ট্রিরViewModel
এখন সঠিকভাবে সাফ করা হবে। ( আইডিএফ২৪২ , বি/২৯৮১৬৪৬৪৮ ) - কনফিগারেশন পরিবর্তনের আগে ব্যাক স্ট্যাক সম্পূর্ণ খালি থাকলে বা ইনকামিং ইনটেন্টে
FLAG_ACTIVITY_NEW_TASK
ফ্ল্যাগ সেট থাকলেইsetGraph
কল করলেNavController
একই ডিপ লিঙ্ক একাধিকবার পরিচালনা করতে পারে এমন একটি সমস্যা সমাধান করেছে। ( I73c7f )
নির্ভরতা আপডেট
- ফ্র্যাগমেন্টের সাথে নেভিগেশন এখন ফ্র্যাগমেন্ট 1.6.2 এর উপর নির্ভর করে, একটি সমস্যা সমাধান করা যেখানে
clearBackStack
কল করার সময় নেস্টেড ফ্র্যাগমেন্টেরViewModel
ইনস্ট্যান্সগুলি সাফ করা হবে না।
সংস্করণ 2.7.4
সংস্করণ 2.7.4
4 অক্টোবর, 2023
androidx.navigation:navigation-*:2.7.4
প্রকাশিত হয়েছে। সংস্করণ 2.7.4 এই কমিট ধারণ করে.
নতুন বৈশিষ্ট
-
popBackStack
এ পাওয়া সমর্থনের সাথে মেলে সেই সঠিক আর্গুমেন্টগুলি ব্যবহার করে এমন একটি নির্দিষ্ট এন্ট্রিতে পপ করার অনুমতি দেওয়ার জন্য আর্গুমেন্ট সহ রুটগুলি ব্যবহার করার জন্যpopUpTo
এর জন্য সমর্থন যোগ করা হয়েছে। ( I731f4 , b/299255572 )
বাগ ফিক্স
-
popUpTo
এর সাথে অন্য একটি নেভিগেটে একটি নেভিগেটে বাধা দিলেFragmentNavigator
ক্র্যাশ হয়ে যাবে এমন সমস্যাটি সমাধান করুন। ( I3c848 , b/301887045 ) - ফিক্সড সমস্যা যেখানে সিস্টেম ব্যাক প্রেসের কারণে
currentDestination
প্রদর্শিত ফ্র্যাগমেন্টের সাথে মেলে সঠিকভাবে আপডেট করা হয়নি। ( Id0d6c , b/289877514 ) -
DialogFragment
লাইফসাইকেল এখন সঠিকভাবেRESUMED
অবস্থায় চলে যাবে যখন উপরের ডায়ালগটি খারিজ হয়ে যাবে। ( I88f0d , b/301811387 )
সংস্করণ 2.7.3
সংস্করণ 2.7.3
20 সেপ্টেম্বর, 2023
androidx.navigation:navigation-*:2.7.3
প্রকাশিত হয়েছে। সংস্করণ 2.7.3 এই কমিট ধারণ করে.
বাগ ফিক্স
- ফ্র্যাগমেন্টের সাথে নেভিগেশনে একটি সমস্যা সমাধান করা হয়েছে যার কারণে
visibleEntries
তালিকায় ভুল এন্ট্রি রয়েছে। ( I5caa9 , b/288520638 ) - একটি সমস্যা সমাধান করা হয়েছে যার কারণে ফ্লোটিং উইন্ডো গন্তব্য (যেমন
Dialogs
,Bottomsheets
, ইত্যাদি)RESUMED
লাইফসাইকেল কলব্যাক কখনই পায়নি৷ ( I3b866 , b/287505132 )
সংস্করণ 2.7.2
সংস্করণ 2.7.2
6 সেপ্টেম্বর, 2023
androidx.navigation:navigation-*:2.7.2
প্রকাশিত হয়েছে। সংস্করণ 2.7.2 এই কমিট ধারণ করে.
বাগ ফিক্স
- ন্যাভিগেশন এখন লাইফসাইকেল
2.6.2
এর উপর নির্ভর করে,rememberSaveable
এবং নেভিগেশন কম্পোজেরNavHost
এর মধ্যে একটি মিথস্ক্রিয়া ঠিক করে যা গন্তব্যেরrememberSaveable
অবস্থা এবং যেকোনViewModel
মালিকানাধীনSavedStateHandle
দৃষ্টান্তগুলিকে প্রক্রিয়ার মৃত্যু এবং বিনোদনের পরে সঠিকভাবে পুনরুদ্ধার করতে পারে। ( b/298059596 , b/289436035 ) - ন্যাভিগেশন কম্পোজে একই সাথে একাধিক ডায়ালগ দেখানোর সময় একটি সমস্যা সমাধান করা হয়েছে যেখানে আংশিকভাবে অস্পষ্ট ডায়ালগ (যেমন, শীর্ষস্থানীয় ডায়ালগ নয়)
STARTED
অবস্থার পরিবর্তেCREATED
লাইফসাইকেল অবস্থায় থাকবে। ( aosp/2728520 , b/289257213 ) - একই সাথে নেভিগেশন কম্পোজে একাধিক ডায়ালগ দেখানোর সময় একটি সমস্যা সমাধান করা হয়েছে যেখানে শীর্ষস্থানীয় ডায়ালগটি খারিজ করা হলে নতুন শীর্ষ ডায়ালগ সঠিকভাবে
RESUMED
চালু করার পরিবর্তেSTARTED
লাইফসাইকেল অবস্থায় আটকে যাবে। ( aosp/2629401 , b/286371387 ) - নেভিগেশন সেফ আর্গস আর তার টাস্ককে আগ্রহের সাথে তাত্ক্ষণিক করে না যদি এটি বাস্তবে কার্যকর করা না হয়। ( I0e385 , b/260322841 )
নির্ভরতা আপডেট
- নেভিগেশন রচনা এখন রচনা 1.5.1 এর উপর নির্ভর করে।
সংস্করণ 2.7.1
সংস্করণ 2.7.1
23 আগস্ট, 2023
androidx.navigation:navigation-*:2.7.1
প্রকাশিত হয়েছে। সংস্করণ 2.7.1 এই কমিট ধারণ করে.
বাগ ফিক্স
- কম্পোজের সাথে নেভিগেশনে একটি সমস্যা সমাধান করা হয়েছে যেখানে একটি
Scaffold
ব্যবহার করার সময় একটিLifecycle.State.DESTROYED
ViewModel
অ্যাক্সেস করার চেষ্টা করার জন্য একটি ত্রুটি পাওয়া সম্ভব ছিল। ( I1dc11 , b/268422136 )
সংস্করণ 2.7.0
সংস্করণ 2.7.0
9 আগস্ট, 2023
androidx.navigation:navigation-*:2.7.0
প্রকাশিত হয়েছে। সংস্করণ 2.7.0 এই কমিট ধারণ করে.
2.6.0 থেকে গুরুত্বপূর্ণ পরিবর্তন
Accompanist থেকে অ্যানিমেশন
এখন যেহেতু AnimatedContent
স্থিতিশীল, আমরা অ্যাকমপ্যানিস্ট নেভিগেশন অ্যানিমেশন থেকে কোডটিকে আবার নেভিগেশন কম্পোজে সরাতে সক্ষম হয়েছি।
এর মানে হল AnimatedNavHost
এ বিদ্যমান কাস্টম ট্রানজিশন সেট করার জন্য সমস্ত সমর্থন সরাসরি NavHost
এ সমর্থিত।
অ্যাকপ্যানিস্ট নেভিগেশন অ্যানিমেশনে কোনও অতিরিক্ত পরিবর্তন করা হবে না এবং আমরা শীঘ্রই এটিকে আনুষ্ঠানিকভাবে বাতিল করে দেব, পাশাপাশি কীভাবে নেভিগেশন কম্পোজে আবার স্থানান্তরিত করা যায় তার নির্দেশিকা সহ, তবে এটি মাইগ্রেশন গাইডের বিপরীত হবে যেখানে অন্য কোনও API পরিবর্তনের প্রয়োজন নেই যদি আপনি ইতিমধ্যেই সর্বশেষ অ্যাকমপ্যানিস্ট আলফা ( 0.31.2-alpha
) ব্যবহার করছেন। ( b/197140101 )
বাগ ফিক্স
- নেভিগেশন কম্পোজে NavHost এখন সঠিকভাবে সিস্টেম ব্যাক কলগুলিকে বাধা দেয় এমনকি কার্যকলাপ বন্ধ এবং পুনরায় চালু করার পরেও। ( Icb6de , b/279118447 )
নির্ভরতা আপডেট
- নেভিগেশন এখন
1.1.0
থেকে কম্পোজ1.5.0
এর উপর নির্ভর করে।
সংস্করণ 2.7.0-rc01
জুলাই 26, 2023
androidx.navigation:navigation-*:2.7.0-rc01
প্রকাশিত হয়েছে। সংস্করণ 2.7.0-rc01-এ এই কমিট রয়েছে।
বাগ ফিক্স
- একটি সমস্যা সমাধান করা হয়েছে যেখানে
NavHost
এর অংশ হিসাবে তৈরি করাEnterTransition
এবংExitTransition
ল্যাম্বডাস সম্ভাব্যভাবে মেমরিতে থাকতে পারে এমনকিNavHost
কম্পোজিশন থেকে সরানোর পরেও। ( I893d0 )
জ্ঞাত সমস্যা
- নেভিগেশন 2.6.x থেকে একটি সমস্যা আছে যে পপআপের সাথে নেভিগেট করার সময় এটি একটি
IllegalArgumentException
হতে পারে। এখানে প্রস্তাবিত পরামর্শের মতো আপনার গ্রাফ পুনর্গঠন করে এই ব্যতিক্রমটি এড়ানো সম্ভব। ( b/287133013 )
সংস্করণ 2.7.0-beta02
জুন 28, 2023
androidx.navigation:navigation-*:2.7.0-beta02
প্রকাশিত হয়েছে। সংস্করণ 2.7.0-beta02-এ এই কমিট রয়েছে।
বাগ ফিক্স
- ন্যাভিগেশন কম্পোজে এখন কাস্টম ট্রানজিশনের জন্য সঠিক z-অর্ডার রয়েছে যা
popUpTo
বিকল্পের সাথে নেভিগেট ব্যবহার করে। ( /Ib1c3a , b/285153947 )
সংস্করণ 2.7.0-beta01
7 জুন, 2023
androidx.navigation:navigation-*:2.7.0-beta01
প্রকাশিত হয়েছে। সংস্করণ 2.7.0-beta01-এ এই কমিট রয়েছে।
বাগ ফিক্স
- নেভিগেশন কম্পোজে
NavHost
এখন সঠিকভাবে সিস্টেম ব্যাক কল ইন্টারসেপ্ট করে এমনকিActivity
STOPPED
এবংRESUMED
করার পরেও। ( Icb6de , b/279118447 )
সংস্করণ 2.7.0-alpha01
24 মে, 2023
androidx.navigation:navigation-*:2.7.0-alpha01
প্রকাশিত হয়েছে। সংস্করণ 2.7.0-alpha01-এ এই কমিট রয়েছে।
Accompanist থেকে অ্যানিমেশন
এখন যেহেতু AnimatedContent
স্থিতিশীল, আমরা অ্যাকমপ্যানিস্ট নেভিগেশন অ্যানিমেশন থেকে কোডটিকে আবার নেভিগেশন কম্পোজে সরাতে সক্ষম হয়েছি।
এর মানে হল AnimatedNavHost
এ বিদ্যমান কাস্টম ট্রানজিশন সেট করার জন্য সমস্ত সমর্থন সরাসরি NavHost
এ সমর্থিত।
অ্যাকপ্যানিস্ট নেভিগেশন অ্যানিমেশনে কোনও অতিরিক্ত পরিবর্তন করা হবে না এবং আমরা শীঘ্রই এটিকে আনুষ্ঠানিকভাবে বাতিল করে দেব, পাশাপাশি কীভাবে নেভিগেশন কম্পোজে আবার স্থানান্তরিত করা যায় তার নির্দেশিকা সহ, তবে এটি মাইগ্রেশন গাইডের বিপরীত হবে যেখানে অন্য কোনও API পরিবর্তনের প্রয়োজন নেই যদি আপনি ইতিমধ্যেই সর্বশেষ অ্যাকমপ্যানিস্ট আলফা ( 0.31.2-alpha
) ব্যবহার করছেন। ( b/197140101 )
বাগ ফিক্স
- ন্যাভিগেশন
2.6.0-rc02
থেকে: ফ্র্যাগমেন্টে ন্যাভিগেশন নিয়ে একটি সমস্যা সমাধান করা হয়েছে যেখানেpopUpTo
দিয়ে নেভিগেট করা এবং তার ভিউ পুনরায় তৈরি না করে ব্যাক স্ট্যাকের থেকে একটি টুকরো পপ করা সিস্টেমকে কাজ করা বন্ধ করে দেবে। ( Ieb8d4 , b/281726455 )
নির্ভরতা আপডেট
- নেভিগেশন এখন কম্পোজ
1.5.0-beta01
এর উপর নির্ভর করে।
সংস্করণ 2.6.0
সংস্করণ 2.6.0
7 জুন, 2023
androidx.navigation:navigation-*:2.6.0
প্রকাশিত হয়েছে। সংস্করণ 2.6.0 এই কমিট ধারণ করে.
2.5.0 থেকে নেভিগেশনে গুরুত্বপূর্ণ পরিবর্তন
-
NavBackStackEntry
এরarguments
এবং একটিOnDestinationChangedListener
এর কাছে পাঠানোarguments
এখন শুধুমাত্র অপরিবর্তনীয় আর্গুমেন্টগুলির একটি অনুলিপি যা আপনি যখন গন্তব্যে নেভিগেট করেছিলেন তখন তৈরি হয়েছিল৷ এর অর্থ হল এই বান্ডেলগুলিতে করা কোনও পরিবর্তনarguments
বা অন্যান্যOnDestinationChangedListener
দৃষ্টান্তগুলিতে পরবর্তী অ্যাক্সেসগুলিতে প্রতিফলিত হবে না। -
NavDeepLink
এখন অ্যারেগুলির জন্য ডিফল্ট মান সমর্থন করে, যা বারবার ক্যোয়ারী প্যারামের জন্য সমর্থন করতে দেয় যা আর্গুমেন্টের অ্যারে টাইপের সাথে মানচিত্র করবে।NavType
এখন একটি ডিফল্ট পদ্ধতি রয়েছে যা দুটি পার্স করা মানকে একত্রিত করতে ওভাররাইড করা যেতে পারে। -
NavType
এর কাস্টম সাবক্লাসগুলি এখনserializeAsValue
ওভাররাইড করে একটি স্ট্রিং-এ একটি মানকে সিরিয়ালাইজ করতে পারে, যার ফলে সিরিয়ালাইজেশন এবং ডিসিরিয়ালাইজেশন (parseValue
মাধ্যমে) উভয়কেইNavType
ক্লাসে সম্পূর্ণরূপে এনক্যাপসুলেট করা যায়। প্রদত্তString
এUri.encode
কল করার জন্যStringType
এখন এই পদ্ধতিটিকে ওভাররাইড করে।
2.5.0 থেকে নেভিগেশন কম্পোজে গুরুত্বপূর্ণ পরিবর্তন
-
NavHost
এর সাথে কম্পোজেবলের পূর্বরূপ দেখার সময়, এটি এখন ডিফল্টরূপে NavGraph-এরstartDestination
দেখাবে। -
NavController.popBackStack(route)
,NavController.getBackStackEntry(route)
,NavController.clearBackStack(route)
এখন আংশিক বা সম্পূর্ণভাবে পূর্ণ আর্গুমেন্ট সহ সমস্ত সমর্থন রুট৷ মনে রাখবেন যে আর্গুমেন্টগুলি এন্ট্রির আর্গুমেন্টের সাথে একটি সঠিক মিল হতে হবে৷ -
navDeepLink
Kotlin DSL ব্যবহার করে একটি খালিNavDeepLink
তৈরি করার প্রচেষ্টার ফলে এখন একটি লিন্ট সতর্কতা হবে যা নির্দেশ করে যে একটি গভীর লিঙ্কের বৈধ হওয়ার জন্য একটি uri, অ্যাকশন এবং/অথবা মাইমেটাইপ প্রয়োজন৷
2.5.0 থেকে ফ্র্যাগমেন্ট সহ নেভিগেশনে গুরুত্বপূর্ণ পরিবর্তন
-
NavHostFragment
আর সিস্টেম ব্যাক বোতাম নিজেই বাধা দেয় না। এটি অন্তর্নিহিতFragmentManager
সিস্টেম ব্যাক পরিচালনা করার অনুমতি দেয়। এটি ফ্র্যাগমেন্ট1.7.0-alpha01
এবং উচ্চতরকে Android U ডিভাইসে একটি ইন-অ্যাপ প্রেডিকটিভ ব্যাক অ্যানিমেশন প্রদান করতে দেয়। - ফ্র্যাগমেন্টের সাথে নেভিগেশন ব্যবহার করার সময়, ম্যানুয়ালি একটি
FragmentTransaction
করার চেষ্টা করা যাFragmentManager
এর ব্যাক স্ট্যাকে একটি খণ্ড যুক্ত করে এখন একটিIllegalArgumentException
নিক্ষেপ করবে। আপনার সর্বদাnavigate()
API এর মাধ্যমে টুকরো যুক্ত করা উচিত। - একটি নেভিগেশন XML ফাইলের অ্যাক্টিভিটি এলিমেন্টে
app:data
এবংapp:dataPattern
অ্যাট্রিবিউটে প্লেসহোল্ডার হিসেবে সঠিক স্ট্রিং${applicationId}
ব্যবহার করার সময়, স্থানধারক স্বয়ংক্রিয়ভাবে মুদ্রাস্ফীতির প্রেক্ষাপটেরpackageName
দিয়ে পূর্ণ হবে। -
FragmentNavigator
এখনNavBackStackEntries
নেভিগেট এবং পপ করার সময় ট্রানজিশন API ব্যবহার করে। এর মানে হল যেNavBackStackEntry
Lifecycle
এখন তাদের চূড়ান্তLifecycle.State
সরানোর আগে প্রবেশ এবং প্রস্থানকারী অংশ বিশেষ প্রভাব সম্পূর্ণ হওয়ার জন্য অপেক্ষা করবে। -
DialogFragmentNavigator
এখনNavBackStackEntries
নেভিগেট এবং পপ করার সময় ট্রানজিশন API ব্যবহার করে। এর মানে হল যেNavBackStackEntry
Lifecycle
এখনDESTROYED
এ যাওয়ার আগেDialogFragment
Lifecycle
DESTROYED
এ যাওয়ার জন্য অপেক্ষা করবে। -
NavHostFragment
এখন আপনাকেNavHostFragment
FragmentManager
এর সাথে সংযুক্ত হওয়ার সাথে সাথেNavController
পুনরুদ্ধার করতে দেয়, শুধুমাত্রonCreate()
এর পরে না। - ডাইনামিক ফিচার মডিউলের জন্য নেভিগেশন সমর্থন এখন গ্রানুলার প্লে ফিচার ডেলিভারি লাইব্রেরির উপর নির্ভর করে।
- নেভিগেশন সেফ আর্গস এখন অ্যান্ড্রয়েড গ্রেডল প্লাগইন সংস্করণ 7.3.0 এর উপর নির্ভর করে। এর মানে এটি এখন শুধুমাত্র 7.3.0+ সংস্করণের সাথে সামঞ্জস্যপূর্ণ।
2.5.0 থেকে NavigationUI-তে গুরুত্বপূর্ণ পরিবর্তন
-
AppBarConfiguration
এ একটি নেভিগেশন গ্রাফের ID পাস করার সময় (যেমন একটিMenu
মাধ্যমে),NavigationUI
এখন শুধুমাত্র সেই নেভিগেশন গ্রাফের শুরুর গন্তব্যটিকে শীর্ষ স্তরের গন্তব্য হিসাবে বিবেচনা করে, গ্রাফের মধ্যে প্রতিটি গন্তব্যকে শীর্ষ স্তরের গন্তব্য হিসাবে ভুলভাবে চিহ্নিত করার পরিবর্তে। একটি পৃথক গন্তব্যের আইডি পাস করার আচরণ অপরিবর্তিত।AppBarConfiguration
এ নতুনisTopLevelDestination
ফাংশনের মাধ্যমে আপনার নিজের কোডে এই একই কার্যকারিতা উপলব্ধ। - শীর্ষ অ্যাপ বারে কাজ করার জন্য
NavigationUI
তেsetupWithNavController
ইন্টিগ্রেশনগুলি এখন আপনারandroid:label
লেবেলে পাওয়াReferenceType
আর্গুমেন্টগুলির জন্যR.string
মানগুলিকে তাদের স্ট্রিং মানগুলিতে অটো-জেনারেটেড রিসোর্স পূর্ণসংখ্যা আউটপুট করার পরিবর্তে পার্স করবে। -
NavigationUI
এখন লগ প্রদান করে যখন এটি একটি নির্বাচিতMenuItem
এর মাধ্যমে নেভিগেট করতে ব্যর্থ হয়।
সংস্করণ 2.6.0-rc02
24 মে, 2023
androidx.navigation:navigation-*:2.6.0-rc02
প্রকাশিত হয়েছে। সংস্করণ 2.6.0-rc02 এই কমিট ধারণ করে।
বাগ ফিক্স
- ফ্র্যাগমেন্টে ন্যাভিগেশনের একটি সমস্যা সমাধান করা হয়েছে যেখানে
popUpTo
দিয়ে নেভিগেট করা এবং তার ভিউ রিক্রিয়েট না করে ব্যাক স্ট্যাকের একটি টুকরো পপ করার ফলে সিস্টেম আবার কাজ করা বন্ধ করে দেবে। ( Ieb8d4 , b/281726455 )
সংস্করণ 2.6.0-rc01
10 মে, 2023
androidx.navigation:navigation-*:2.6.0-rc01
প্রকাশিত হয়েছে। সংস্করণ 2.6.0-rc01-এ এই কমিট রয়েছে।
বাগ ফিক্স
- টুকরোগুলির সাথে নেভিগেশনে একটি সমস্যা সমাধান করা হয়েছে যেখানে তার
onResume()
লাইফসাইকেল কলব্যাকেpopUpTo
এর মাধ্যমে নেভিগেট করার মাধ্যমে একটি খণ্ডটি অপসারণ করা একটিIllegalStateException
সৃষ্টি করবে। ( I21884 , b/279644470 )
সংস্করণ 2.6.0-beta01
এপ্রিল 19, 2023
androidx.navigation:navigation-*:2.6.0-beta01
প্রকাশিত হয়েছে। সংস্করণ 2.6.0-beta01-এ এই কমিট রয়েছে।
নতুন বৈশিষ্ট
-
NavBackStackEntry
এখন একটি কাস্টমtoString
বাস্তবায়ন প্রদান করে। ( IFF00b )
বাগ ফিক্স
- ফ্র্যাগমেন্টের সাথে নেভিগেশন ব্যবহার করার সময়, ম্যানুয়ালি একটি
FragmentTransaction
করার চেষ্টা করা যাFragmentManager
এর ব্যাক স্ট্যাকে একটি খণ্ড যুক্ত করে এখন একটিIllegalArgumentException
নিক্ষেপ করবে। আপনার সর্বদাnavigate()
API এর মাধ্যমে টুকরো যুক্ত করা উচিত। ( I6d38e ) - যখন একটি
navigate
থাকে যা একটি এন্ট্রি এবং একটিpopBackStack
যোগ করে যা এটিকে একই ফ্রেমে সরিয়ে দেয়, তখন পিছনের স্ট্যাকের উপরের এন্ট্রিটি এখন ধারাবাহিকভাবে পুনরায় চালুRESUMED
Lifecycle.State
ফিরে আসবে৷ ( Id8067 , b/276495952 )
সংস্করণ 2.6.0-alpha09
5 এপ্রিল, 2023
androidx.navigation:navigation-*:2.6.0-alpha09
প্রকাশিত হয়েছে। সংস্করণ 2.6.0-alpha09 এই কমিট ধারণ করে।
বাগ ফিক্স
- অবৈধ রুটের জন্য স্থির চেক যেমন একটি
NavDestination
যদি নন-nullableNavArgument
ধারণ করে, তাহলে এই গন্তব্যের রুটে অবশ্যই অ-নূলযোগ্যNavArgument
এর মতো নামযুক্ত args-এর স্থানধারক থাকতে হবে। ( Ic62bf , b/274697949 ) -
Action/MimeType
এর উপর ভিত্তি করে ডিপলিংক নেভিগেশনগুলি এখন ব্যর্থ হবে যদি নেভিগেশন অপারেশনটিAction/MimeType
এর সাথে মেলে এমনNavDestination
এর জন্য প্রয়োজনীয় একটি অ-নূলযোগ্যNavArgument
অনুপস্থিত থাকে। ( Ibfa17 , b/271777424 ) - যখন
NavController
পূর্ববর্তী গ্রাফের মতো একই রুট এবং গন্তব্যগুলির সাথে একটি গ্রাফ সেট করে, তখন এটি এখন সঠিকভাবে তার বর্তমান গ্রাফ নোডগুলি এবং এর ব্যাক স্ট্যাকের গন্তব্যগুলিকে নতুন উদাহরণ দিয়ে প্রতিস্থাপন করে৷ নেভিগেশন রচনায় স্থিতি সংরক্ষণ না করেonLaunchSingleTop
ব্যবহার করার সময় এটি একটি ক্র্যাশ সংশোধন করে৷ এটি একটি ত্রুটিও ঠিক করে যেখানে রুট গ্রাফের সাথে যুক্ত গন্তব্যে নেভিগেট করা হয় এবং ভুল ব্যাক স্ট্যাক তৈরি হয়। ( I5bc58 , b/275258161 , b/275407804 )
সংস্করণ 2.6.0-alpha08
22 মার্চ, 2023
androidx.navigation:navigation-*:2.6.0-alpha08
প্রকাশিত হয়েছে। সংস্করণ 2.6.0-alpha08 এই কমিট ধারণ করে।
নতুন বৈশিষ্ট
-
NavHostFragment
এখন আপনাকেNavHostFragment
FragmentManager
এর সাথে সংযুক্ত হওয়ার সাথে সাথেNavController
পুনরুদ্ধার করতে দেয়, শুধুমাত্রonCreate()
এর পরে না। ( Ic6382 , b/220186282 )
বাগ ফিক্স
- একটি
NullPointerException
স্থির করা হয়েছে যখন একটি নেস্টেড গ্রাফ পপ করা হয়েছে যাতে একটি নন-নালযোগ্য যুক্তি রয়েছে৷ ( 6b3581 , b/249988437 ) -
popUpTo
দিয়ে নেভিগেট করার পরে সিস্টেম ব্যাক করার সময়,NavController
এর অবস্থা সঠিক এন্ট্রিতে পপ করবে। ( I3a8ec , b/270447657 ) -
FragmentNavigator
এখন সঠিকভাবে এন্ট্রি পপ করবে যখন ব্যাক স্ট্যাক সিস্টেম ব্যাক বাpopBackStack()
এর মাধ্যমে পপ করা হয় এবং লেনদেনটি ফ্র্যাগমেন্টের জন্য প্রভাব ব্যবহার করে কিনা। ( I81bdf ) - নেভিগেশন ব্যবহার না করে
FragmentNavigator
এরFragmentManager
এ টুকরো যোগ করলে আর ক্র্যাশ হবে না। ( b17204 , b/274167493 )
নির্ভরতা আপডেট
- নেভিগেশন এখন লাইফসাইকেল
2.6.1
এর উপর নির্ভর করে। ( 586fe7 ) - নেভিগেশন এখন SavedState
1.2.1
এর উপর নির্ভর করে। ( 078e4e ) - নেভিগেশন এখন প্রোফাইলইনস্টলার
1.3.0
এর উপর নির্ভর করে। ( 512f0c )
সংস্করণ 2.6.0-alpha07
8 মার্চ, 2023
androidx.navigation:navigation-*:2.6.0-alpha07
প্রকাশিত হয়েছে। সংস্করণ 2.6.0-alpha07 এই কমিট ধারণ করে।
বাগ ফিক্স
-
getBackStackEntry
,popBackStack
,clearBackStack
API ভেরিয়েন্টগুলি যেগুলি রুটগুলি গ্রহণ করে সেগুলি এখন বাতিলযোগ্য আর্গুমেন্ট এবং বাতিলযোগ্য ক্যোয়ারী প্যারামগুলির সাথে রুট প্যাটার্ন গ্রহণ করে ( I22294 , b/269302500 ) - একটি সমস্যা সমাধান করা হয়েছে যেখানে
NavController
থেকেclearBackStack()
কল করলে ক্লিয়ার করা ব্যাক স্ট্যাকের সাথে যুক্ত ফ্র্যাগমেন্ট ম্যানেজারে সংরক্ষিত অবস্থা সাফ হবে না। ( IC1cce , b/271190202 ) - 2.6.0-alpha06-এ একটি রিগ্রেশন স্থির করা হয়েছে যার ফলে
BottomNavigationView
এ ভুলMenuItem
হাইলাইট করা হয়েছে যখন ট্যাবের মধ্যে সিস্টেম ব্যাক করা হয়েছে। ( I634f6 , b/270447657 ) - 2.6.0-alpha06-এ ফিক্সড রিগ্রেশন যার কারণে
Animation
s ব্যবহার করার সময়NavBackStackEntry
কে RESUMED অবস্থায় সরানো হয়নি। ( Ib3589 , b/269646882 )
সংস্করণ 2.6.0-alpha06
22 ফেব্রুয়ারি, 2023
androidx.navigation:navigation-*:2.6.0-alpha06
প্রকাশিত হয়েছে। সংস্করণ 2.6.0-alpha06 এই কমিট ধারণ করে।
নতুন বৈশিষ্ট
-
NavHost
এর সাথে কম্পোজেবলের পূর্বরূপ দেখার সময়, এটি এখন ডিফল্টরূপে NavGraph-এরstartDestination
দেখাবে। ( I2b89f )
এপিআই পরিবর্তন
- সমস্ত
NavController
navigate
ওভারলোডগুলিকে এখন@MainThread
দিয়ে টীকা করা হয়েছে যাতে সেগুলিকে মূল থ্রেডে কল করা হয়েছে। ( I2c0b0 , b/263427111 )
বাগ ফিক্স
- ডায়নামিক ফ্র্যাগমেন্ট নেভিগেশন ব্যবহার করার সময় নেভিগেট করার চেষ্টা করার সময় একটি ক্র্যাশ সংশোধন করা হয়েছে। ( I3ee29 , b/268360479 )
- ফিক্সড বাগ যেখানে সিস্টেম ব্যাক বোতামের মাধ্যমে অন্য খণ্ডে নেভিগেট করা সঠিক নির্বাচিত আইটেমে নীচের বার আপডেট করে না ( If559f , b/269044426 )
জ্ঞাত সমস্যা
- ফ্র্যাগমেন্টের সাথে নেভিগেশন ব্যবহার করার সময়,
Animation
API ব্যবহার করার সময়NavBackStackEntry
এর লাইফসাইকেলRESUMED
পৌঁছাতে ব্যর্থ হয়। ( b/269646882 ) - ফ্র্যাগমেন্টের সাথে নেভিগেশন ব্যবহার করার সময়, এবং
BottomNavigation
দিয়ে নেভিগেট করার সময়, আপনি যদি একাধিক এন্ট্রি সহ একটি ব্যাক স্ট্যাক পুনরুদ্ধার করার চেষ্টা করেন,BottomMenuItem
সঠিকভাবে আপডেট করা হয় না। ( b/270447657 ) - ফ্র্যাগমেন্টের সাথে নেভিগেশন ব্যবহার করার সময়, অবস্থা পুনরুদ্ধার করার পরে
NavBackStackEntry
Lifecycle
DESTROYED
হয়ে যায় না যখন এটির খণ্ডটিDESTROYED
হয়ে যায়। ( b/270610768 )
সংস্করণ 2.6.0-alpha05
ফেব্রুয়ারী 8, 2023
androidx.navigation:navigation-*:2.6.0-alpha05
প্রকাশিত হয়েছে। সংস্করণ 2.6.0-alpha05 এই কমিট ধারণ করে।
নতুন বৈশিষ্ট
-
NavController.popBackStack(route)
,NavController.getBackStackEntry(route)
,NavController.clearBackStack(route)
এখন আংশিক বা সম্পূর্ণভাবে পূর্ণ আর্গুমেন্ট সহ সমস্ত সমর্থন রুট৷ মনে রাখবেন যে আর্গুমেন্টগুলি এন্ট্রির আর্গুমেন্টের সাথে একটি সঠিক মিল হতে হবে৷ ( Iebd28 , Ic678c , I3b37b , b/257514373 ) -
FragmentNavigator
এখনNavBackStackEntries
নেভিগেট এবং পপ করার সময় ট্রানজিশন API ব্যবহার করে। এর মানে হল যেNavBackStackEntry
Lifecycle
এখন তাদের চূড়ান্তLifecycle.State
সরানোর আগে প্রবেশ এবং প্রস্থানকারী অংশ বিশেষ প্রভাব সম্পূর্ণ হওয়ার জন্য অপেক্ষা করবে। ( I3cb19 , b/238686802 ) -
DialogFragmentNavigator
এখনNavBackStackEntries
নেভিগেট এবং পপ করার সময় ট্রানজিশন API ব্যবহার করে। এর মানে হল যেNavBackStackEntry
Lifecycle
এখনDESTROYED
এ যাওয়ার আগেDialogFragment
Lifecycle
DESTROYED
এ যাওয়ার জন্য অপেক্ষা করবে। ( I53ee5 , b/261213893 )
এপিআই পরিবর্তন
-
NavigatorState
এখনprepareForTransition
API প্রদান করে যাতেNavigator
NavBackStackEntries
মধ্যবর্তীLifecycle.State
স্থানান্তর করার অনুমতি দেয়। ( I42c21 , b/238686802 ) - আপনি এখন
backstack
সম্পত্তির মাধ্যমেNavGraphNavigator
বাComposeNavigator
এর সাথে যুক্ত ব্যাক স্ট্যাক অ্যাক্সেস করতে পারেন।ComposeNavigator
এখনonTransitionComplete()
কলব্যাককে একটিNavBackStackEntry
চিহ্নিত করতে প্রকাশ করে যা একটি নেভিগেট বাpopBackStack
অপারেশন সম্পূর্ণরূপে সম্পন্ন করেছে। ( I02062 , I718db , b/257519195 )
বাগ ফিক্স
-
push/popWithTransition
API ব্যবহার করার সময় ন্যাভিগেটর স্টেট এখন নো-অপ করবে এবং এন্ট্রিটি ইতিমধ্যেই পরিচালনা করা হচ্ছে। ( Iadbfa , b/261213893 ) - একটি নেস্টেড
NavGraph
এর সাথেlaunchSingleTop
ব্যবহার করার সময় আসল গন্তব্য থেকে শুরু করেstartDestination
পর্যন্ত সমস্ত গন্তব্যগুলি শুধুমাত্র ব্যাকস্ট্যাকের শীর্ষে সঠিকভাবে যোগ করা হবে। ( Id4bea , b/253256629 ) - ন্যাভিগেশন এখন সঠিকভাবে
DialogFragment
দৃষ্টান্ত প্রতিস্থাপন করবে যখনlaunchSingleTop
পতাকা সত্যে সেট করে একই গন্তব্যে নেভিগেট করবে। ( I45b5a , b/149572817 ) - ঠিক 19 অক্ষর দীর্ঘ আর্গুমেন্ট ব্যবহার করার সময় নেভিগেশন SafeArgs আর একটি সংকলন ত্রুটি সৃষ্টি করবে না। ( Id60bc , b/257110095 )
সংস্করণ 2.6.0-alpha04
9 নভেম্বর, 2022
androidx.navigation:navigation-*:2.6.0-alpha04
প্রকাশিত হয়েছে। সংস্করণ 2.6.0-alpha04 এই কমিট ধারণ করে।
নতুন বৈশিষ্ট
-
NavType
এর কাস্টম সাবক্লাসগুলি এখনserializeAsValue
ওভাররাইড করে একটি স্ট্রিং-এ একটি মানকে সিরিয়ালাইজ করতে পারে, যার ফলে সিরিয়ালাইজেশন এবং ডিসিরিয়ালাইজেশন (parseValue
মাধ্যমে) উভয়কেইNavType
ক্লাসে সম্পূর্ণরূপে এনক্যাপসুলেট করা যায়। প্রদত্তString
এUri.encode
কল করার জন্যStringType
এখন এই পদ্ধতিটিকে ওভাররাইড করে। ( IE5213 , b/247637434 ) -
NavigationUI
এখন লগ প্রদান করে যখন এটি একটি নির্বাচিতMenuItem
এর মাধ্যমে নেভিগেট করতে ব্যর্থ হয়। ( I2af5a , b/247730357 )
বাগ ফিক্স
- নেভিগেশন গভীর লিঙ্কগুলি এখন গ্রাফ ইনিশিয়ালাইজেশনের পরিবর্তে অলসভাবে পার্স করা হয়েছে যা শুরুতে অ্যাপের কার্যকারিতা উন্নত করতে পারে। ( Iab0ab )
- নাল ডিফল্ট আর্গুমেন্ট সহ একটি গন্তব্যের সাথে গভীর লিঙ্ক করার পরে নেভিগেট করার কারণে স্থির ক্র্যাশ। ( I51c24 , b/243183636 )
নির্ভরতা আপডেট
- ডাইনামিক ফিচার মডিউলের জন্য নেভিগেশন সমর্থন এখন গ্রানুলার প্লে ফিচার ডেলিভারি লাইব্রেরির উপর নির্ভর করে। ( Ib4ddc )
- নেভিগেশন সেফ আর্গস এখন অ্যান্ড্রয়েড গ্রেডল প্লাগইন সংস্করণ 7.3.0 এর উপর নির্ভর করে। এর মানে এটি এখন শুধুমাত্র 7.3.0+ সংস্করণের সাথে সামঞ্জস্যপূর্ণ। ( I47e49 )
সংস্করণ 2.6.0-alpha03
24 অক্টোবর, 2022
androidx.navigation:navigation-*:2.6.0-alpha03
প্রকাশিত হয়েছে। সংস্করণ 2.6.0-alpha03 এই কমিট ধারণ করে।
বাগ ফিক্স
- নেভিগেশন
2.5.3
থেকে : যখনCrossfade
রচনা করার জন্য কোন গন্তব্য উপলব্ধ না থাকে তখনNavHost
আরNoSuchElementException
সৃষ্টি করবে না। এটা এখন শুধু রচনা এড়িয়ে যাবে. ( Ieb46e , b/253299416 ) - ন্যাভিগেশন
2.5.3
থেকে: একটি সমস্যা সমাধান করা হয়েছে যেখানে সংরক্ষিত কম্পোজ স্টেট (যেমন,rememberSaveable
ব্যবহার) ভুলে যাওয়া এবং সরানো হচ্ছে না যখন একটি গন্তব্য ব্যাক স্ট্যাকের থেকে পপ করা হয়েছিল। ( I64949 )
নির্ভরতা আপডেট
- নেভিগেশন এখন ফ্র্যাগমেন্ট
1.5.4
এর উপর নির্ভর করে। ( আইসিডি 424 )
সংস্করণ 2.6.0-alpha02
5 অক্টোবর, 2022
androidx.navigation:navigation-*:2.6.0-alpha02
প্রকাশিত হয়েছে। সংস্করণ 2.6.0-alpha02 এই কমিট ধারণ করে।
আচরণ পরিবর্তন
-
AppBarConfiguration
এ একটি নেভিগেশন গ্রাফের ID পাস করার সময় (যেমন একটিMenu
মাধ্যমে),NavigationUI
এখন শুধুমাত্র সেই নেভিগেশন গ্রাফের শুরুর গন্তব্যটিকে শীর্ষ স্তরের গন্তব্য হিসাবে বিবেচনা করে, গ্রাফের মধ্যে প্রতিটি গন্তব্যকে শীর্ষ স্তরের গন্তব্য হিসাবে ভুলভাবে চিহ্নিত করার পরিবর্তে। একটি পৃথক গন্তব্যের আইডি পাস করার আচরণ অপরিবর্তিত।AppBarConfiguration
এ নতুনisTopLevelDestination
ফাংশনের মাধ্যমে আপনার নিজের কোডে এই একই কার্যকারিতা উপলব্ধ। ( IE936e , b/238496771 )
বাগ ফিক্স
-
navigation:navigation-fragment
উপাদানটি এখন ফ্র্যাগমেন্ট সংস্করণ1.5.2
এর উপর নির্ভর করে। ( I00ba4 ) - একটি ডায়ালগের মতো
FloatingWindow
গন্তব্যে নেভিগেট করার সময় নির্বাচিত মেনু আইটেমটি আর আপডেট করা হবে না। ( I4cde8 , b/240308330 )
সংস্করণ 2.6.0-alpha01
7 সেপ্টেম্বর, 2022
androidx.navigation:navigation-*:2.6.0-alpha01
প্রকাশিত হয়েছে। 2.6.0-alpha01 সংস্করণে এই কমিট রয়েছে।
নতুন বৈশিষ্ট
- শীর্ষ অ্যাপ বারে কাজ করার জন্য
NavigationUI
তেsetupWithNavController
ইন্টিগ্রেশনগুলি এখন আপনারandroid:label
লেবেলে পাওয়াReferenceType
আর্গুমেন্টগুলির জন্যR.string
মানগুলিকে তাদের স্ট্রিং মানগুলিতে অটো-জেনারেটেড রিসোর্স পূর্ণসংখ্যা আউটপুট করার পরিবর্তে পার্স করবে। ( I5f803 , b/167959935 ) -
NavDeepLink
এখন অ্যারেগুলির জন্য ডিফল্ট মান সমর্থন করে, যা বারবার ক্যোয়ারী প্যারামের জন্য সমর্থন করতে দেয় যা আর্গুমেন্টের অ্যারে টাইপের সাথে মানচিত্র করবে।NavType
এখন একটি ডিফল্ট পদ্ধতি রয়েছে যা দুটি পার্স করা মানকে একত্রিত করতে ওভাররাইড করা যেতে পারে। ( Id68c3 , b/209977108 ) - একটি নেভিগেশন XML ফাইলের অ্যাক্টিভিটি এলিমেন্টে
app:data
এবংapp:dataPattern
অ্যাট্রিবিউটে প্লেসহোল্ডার হিসেবে সঠিক স্ট্রিং${applicationId}
ব্যবহার করার সময়, স্থানধারক স্বয়ংক্রিয়ভাবে মুদ্রাস্ফীতির প্রেক্ষাপটেরpackageName
দিয়ে পূর্ণ হবে। ( আব্দে , বি/২৩৪২২৩৫৬১ ) -
navDeepLink
Kotlin DSL ব্যবহার করে একটি খালিNavDeepLink
তৈরি করার প্রচেষ্টার ফলে এখন একটি লিন্ট সতর্কতা হবে যা নির্দেশ করে যে একটি গভীর লিঙ্কের বৈধ হওয়ার জন্য একটি uri, অ্যাকশন এবং/অথবা মাইমেটাইপ প্রয়োজন৷ ( I08d2f , b/154038883 )
এপিআই পরিবর্তন
- স্ট্রিং-এ
android:label="{arg}"
আকারে আর্গুমেন্ট সহ ডায়নামিক লেবেল পার্স করতে নতুনNavDestination
এক্সটেনশন ফাংশন যোগ করা হয়েছে।R.string
মানগুলিকে তাদের স্ট্রিং মানগুলিতে পার্স করেReferenceType
আর্গুমেন্টকে সমর্থন করে। ( I07d89 , b/236269380 )
আচরণ পরিবর্তন
- NavBackStackEntry-এর
arguments
এবং একটিOnDestinationChangedListener
এর কাছে পাঠানোarguments
এখন শুধুমাত্র সেই অপরিবর্তনীয় আর্গুমেন্টগুলির একটি অনুলিপি যা আপনি যখন গন্তব্যে নেভিগেট করেছিলেন তখন তৈরি হয়েছিল৷ এর অর্থ হল এই বান্ডেলগুলিতে করা কোনও পরিবর্তনarguments
বা অন্যান্যOnDestinationChangedListener
দৃষ্টান্তগুলিতে পরবর্তী অ্যাক্সেসগুলিতে প্রতিফলিত হবে না। ( I676f5 )
বাগ ফিক্স
- ন্যাভিগেশন
2.5.2
থেকে : ডাইনামিক নেভিগেশন এখন অন্যান্য মডিউল থেকে অ্যাক্টিভিটি গন্তব্যে নেভিগেট করার আগে সঠিকভাবে ইনস্টল করার চেষ্টা করে। ( IA2c16 , b/240292838 ) - ন্যাভিগেশন
2.5.2
থেকে : একই গন্তব্যে নেভিগেট করার সময় এবংlaunchSingleTop
পতাকা সত্যে সেট করার সময় নেভিগেশন এখন সঠিকভাবে ফ্র্যাগমেন্ট ইনস্ট্যান্সকে প্রতিস্থাপন করবে। ( I5a2f1 , b/237374580 ) - ন্যাভিগেশন
2.5.2
থেকে : একটি ডবল নেস্টেড গ্রাফে নেভিগেট করার কারণে স্থিরIllegalStateException
যা একটি নতুন পপ করা শুরুর গন্তব্যের সাথে একজন অভিভাবককে ভাগ করে। ( I9f7cb , b/243778589 )
সংস্করণ 2.5
সংস্করণ 2.5.3
24 অক্টোবর, 2022
androidx.navigation:navigation-*:2.5.3
প্রকাশিত হয়েছে। সংস্করণ 2.5.3 এই কমিট ধারণ করে.
বাগ ফিক্স
- যখন
Crossfade
রচনা করার জন্য কোন গন্তব্য উপলব্ধ না থাকে তখনNavHost
আর কোনNoSuchElementException
সৃষ্টি করবে না। এটা এখন শুধু রচনা এড়িয়ে যাবে. ( Ieb46e , b/253299416 ) - একটি সমস্যা সমাধান করা হয়েছে যেখানে সংরক্ষিত কম্পোজ স্টেট (উদাহরণস্বরূপ,
rememberSaveable
ব্যবহার) ভুলে যাওয়া হয়নি এবং যখন একটি গন্তব্য ব্যাক স্ট্যাকের থেকে পপ করা হয়েছিল তখন সরানো হচ্ছে না। ( I64949 )
সংস্করণ 2.5.2
7 সেপ্টেম্বর, 2022
androidx.navigation:navigation-*:2.5.2
প্রকাশিত হয়েছে। সংস্করণ 2.5.2 এই কমিট ধারণ করে.
বাগ ফিক্স
- ডাইনামিক নেভিগেশন এখন অন্য মডিউল থেকে অ্যাক্টিভিটি গন্তব্যে নেভিগেট করার আগে সঠিকভাবে ইনস্টল করার চেষ্টা করে। ( IA2c16 , b/240292838 )
- একই গন্তব্যে নেভিগেট করার সময় এবং
launchSingleTop
পতাকাটিকে সত্য হিসাবে সেট করার সময় নেভিগেশন এখন সঠিকভাবে ফ্র্যাগমেন্ট উদাহরণটিকে প্রতিস্থাপন করবে। ( I5a2f1 , b/237374580 ) - একটি ডবল নেস্টেড গ্রাফে নেভিগেট করার কারণে স্থির
IllegalStateException
যা একটি নতুন পপ করা শুরুর গন্তব্যের সাথে অভিভাবককে ভাগ করে। ( I9f7cb , b/243778589 )
নির্ভরতা আপডেট
- নেভিগেশন
2.5.2
এখন ফ্র্যাগমেন্ট1.5.2
এর উপর নির্ভর করে। ( aosp/2178734 )
সংস্করণ 2.5.1
জুলাই 27, 2022
androidx.navigation:navigation-*:2.5.1
প্রকাশিত হয়েছে। সংস্করণ 2.5.1 এই কমিট ধারণ করে.
বাগ ফিক্স
- একটি
Bundle
সংরক্ষিত কাস্টম আর্গুমেন্ট প্রকারগুলি ব্যবহার করার সময়Navigation Safe Args
জেনারেট করা ক্লাসে আর অবচয় সতর্কতা সৃষ্টি করবে না। ( Id86ed , b/237725966 )
নির্ভরতা আপডেট
- নেভিগেশন লাইব্রেরি এখন লাইফসাইকেল
2.5.1
এর উপর নির্ভর করে। ( Ib4451 ) - নেভিগেশন লাইব্রেরি এখন কার্যকলাপ
1.5.1
এর উপর নির্ভর করে। ( I3efe8 ) - নেভিগেশন লাইব্রেরি এখন ফ্র্যাগমেন্ট
1.5.1
এর উপর নির্ভর করে। ( I56177 )
সংস্করণ 2.5.0
জুন 29, 2022
androidx.navigation:navigation-*:2.5.0
প্রকাশিত হয়েছে। সংস্করণ 2.5.0 এই কমিট ধারণ করে.
2.4.0 থেকে গুরুত্বপূর্ণ পরিবর্তন
- CreationExtras ইন্টিগ্রেশন -
Navigation
এখন লাইফসাইকেল2.5.0
এরCreationExtras
এর মাধ্যমে একটি স্টেটলেসViewModelProvider.Factory
প্রদান করার ক্ষমতা রাখে।
নেভিগেশন SafeArgs
-
Navigation Safe Args
7.0.4
উপর নির্ভর করার জন্যAndroid Gradle Plugin
নির্ভরতা আপগ্রেড করেছে,7.0
এর আগে এজিপি সংস্করণগুলির জন্য সামঞ্জস্যতা বাদ দিয়েছে। - অ্যাপ্লিকেশন আইডির পরিবর্তে ব্যবহার করার জন্য namespace build.gradle অ্যাট্রিবিউটের জন্য সমর্থন যোগ করা হয়েছে।
অন্যান্য পরিবর্তন
-
visibleEntries
API আর পরীক্ষামূলক নয় এবংNavController
অনুযায়ী বর্তমানে দৃশ্যমান সমস্ত এন্ট্রি পুনরুদ্ধার করার জন্য একটি ফাংশন প্রদান করে।
সংস্করণ 2.5.0-rc02
15 জুন, 2022
androidx.navigation:navigation-*:2.5.0-rc02
প্রকাশিত হয়েছে। সংস্করণ 2.5.0-rc02 এই কমিট ধারণ করে।
বাগ ফিক্স
- নেভিগেশন রচনা
NavHost
ব্যবহার করার সময় নীচের গন্তব্যগুলির মধ্যে দ্রুত স্যুইচিংয়ের কারণে সৃষ্ট একটি ক্র্যাশ সংশোধন করা হয়েছে৷ ( I3979a , b/234054916 ) -
Navigation SafeArgs
আর ক্র্যাশ হবে না যখন কোনোapplicationIdSuffix
এবং নামস্থান ব্যবহার করার সময় হয় কোনোapplicationId
নেই, অথবা যখনapplicationId
এবং নামস্থান পৃথক হয়। ( I754b1 , b/233119646 ) -
NavArgument
এখন একটি কাস্টমtoString()
ফাংশন আছে আর্গুমেন্টের অভ্যন্তরীণ মান দেখানোর জন্য। ( I900a8 )
সংস্করণ 2.5.0-rc01
11 মে, 2022
androidx.navigation:navigation-*:2.5.0-rc01
প্রকাশিত হয়েছে। সংস্করণ 2.5.0-rc01-এ এই কমিট রয়েছে।
নতুন বৈশিষ্ট
- আপনার
navigation.xml
ফাইলের<activity>
এলিমেন্টের ভিতরে<deeplink>
উপাদানগুলি রাখার বিরুদ্ধে সতর্ক করার জন্য একটি নতুন লিন্ট নিয়ম যোগ করা হয়েছে। ( Ic15a5 , b/178403185 )
বাগ ফিক্স
-
NavHost
এবংDialogHost
এ কম্পোজযোগ্য স্কোপগুলি এখন প্রত্যাশিত ক্রমে নিষ্পত্তি করা হয়, অর্থাৎ ভিতরের কম্পোজেবলগুলি বাইরের কম্পোজেবলের আগে নিষ্পত্তি করা হয়। ( I157e6 ) - ন্যাভিগেশন SafeArgs এখন
ArgumentsGenerationTask
এPathSensitivity.RELATIVE
ব্যবহার করে ক্যাশে রিলোক্যাটেবিলিটির অনুমতি দিতে। এর মানে হল ক্যাশে এন্ট্রি এখন একটি CI বিল্ড থেকে স্থানীয় বিল্ডে পুনরায় ব্যবহার করা যেতে পারে। ( I5f67c , b/173420454 ) -
UnrememberedGetBackStackEntryDetector
lint নিয়মটি আপডেট করা হয়েছে যাতেgetBackStackEntry()
এ কলের আশেপাশেরremember
কলটি একটি কী হিসাবেNavBackStackEntry
অবজেক্টে পাস করে।( Ib7081 , b/227382831 )
সংস্করণ 2.5.0-beta01
20 এপ্রিল, 2022
androidx.navigation:navigation-*:2.5.0-beta01
প্রকাশিত হয়েছে। সংস্করণ 2.5.0-beta01-এ এই কমিট রয়েছে।
বাগ ফিক্স
-
DialogNavigator
এখন একটিdismiss()
কল চালানোর সময়popWithTransition
ব্যবহার করে। এটিdialog
গন্তব্যের মধ্যে একটিViewModel
ব্যবহার করার সময় একটি রেসের অবস্থার সমাধান করে যা একটিIllegalStateException
সৃষ্টি করবে যখন সিস্টেম ব্যাক ব্যবহার করে বা ডায়ালগের বাইরে ট্যাপ করে ডায়ালগ খারিজ করে দেয়। ( Id7376 , b/226552301 )
নির্ভরতা আপডেট
- ন্যাভিগেশন এখন লাইফসাইকেল
2.5.0-beta01
এর উপর নির্ভর করে, যখন একাধিক ব্যাক স্ট্যাক ব্যবহার করার সময় একটি নন-প্রাথমিক নীচের নেভিগেশন ট্যাবে অন্যNavHost
মধ্যে একটিNavHost
নেস্ট করার সময় একটিIllegalStateException
ঠিক করা।
সংস্করণ 2.5.0-alpha04
6 এপ্রিল, 2022
androidx.navigation:navigation-*:2.5.0-alpha04
প্রকাশিত হয়েছে। সংস্করণ 2.5.0-alpha04 এই কমিট ধারণ করে।
এপিআই পরিবর্তন
-
visibleEntries
আর পরীক্ষামূলক নয়। ( I4829f , b/225394514 )
বাগ ফিক্স
- কোন এন্ট্রিগুলি রচনা করতে হবে তা নির্ধারণ করতে NavHost এখন
NavController
থেকেvisibleEntries
উপর নির্ভর করে৷ এর মানে হল নেস্টেড NavHost ব্যবহার করার সময় ভিতরেরNavHost
এখন সঠিকভাবে অ্যানিমেট করা উচিত। ( I4ba2b , b/225394514 ) -
NavController
দ্বারা প্রদত্তvisibleEntries
StateFlow
এখন বর্তমান লাইফসাইকেল অবস্থার পরিবর্তে এন্ট্রি ম্যাক্স লাইফসাইকেল স্টেটের উপর ভিত্তি করে। এর মানে হল যে এমনকি যদিnavController
হোস্ট লাইফ সাইকেল STARTED এর নিচে চলে যায়, তবে দৃশ্যমান সম্পূর্ণগুলির তালিকা একই থাকবে। ( I9e2a8 , b/225394514 ) -
SavedStateViewFactory
এখনCreationExtras
ব্যবহার করে সমর্থন করে এমনকি যখন এটি একটিSavedStateRegistryOwner
দিয়ে শুরু করা হয়েছিল। অতিরিক্ত প্রদান করা হলে, প্রাথমিক আর্গুমেন্ট উপেক্ষা করা হয়। ( I6c43b , b/224844583 ) -
NavDeepLink
এখন কোন মান ছাড়াই একটি একক ক্যোয়ারী প্যারামিটার দিয়ে Uris পার্স করতে পারে। ( I0efe8 , b/148905489 ) - খালি স্ট্রিংগুলিকে এখন গভীর লিঙ্কগুলিতে বৈধ আর্গুমেন্ট হিসাবে বিবেচনা করা হয়। ( I70a0d , b/217399862 )
-
Navigation Safe Args
নামস্থান ব্যবহার করার সময় আর ক্র্যাশ হবে না এবং কোনAndroidManifest.xml
উপস্থিত নেই। ( I17ccf , b/227229815 )
সংস্করণ 2.5.0-alpha03
23 ফেব্রুয়ারি, 2022
androidx.navigation:navigation-*:2.5.0-alpha03
প্রকাশিত হয়েছে। 2.5.0-alpha03 সংস্করণে এই কমিট রয়েছে।
এপিআই পরিবর্তন
- আপনি এখন একটি
ViewModel
তৈরি করতেby navGraphViewModels
CreationExtras
এ পাস করতে পারেন। ( I29217 , b/217618359 )
বাগ ফিক্স
-
NavDeepLinks
এখন সঠিকভাবে রুট/ডিপ লিঙ্ক ইউআরআই-তে এমবেড করা এনকোড করা নতুন লাইন অক্ষর সমর্থন করে। ( I513d1 , b/217815060 ) - ViewModels তৈরি করতে
NavBackStackEntries
এর সাথে ব্যবহার করা হলেCreationExtras
এখন সঠিকভাবে কাজ করবে। ( I69161 , b/217617710 ) - নেভিগেশন সেফ আর্গস এখন AndroidManifest-এ প্যাকেজের জায়গায়
build.gradle
এ সংজ্ঞায়িত নামস্থান ব্যবহার করে সমর্থন করে। ( I659ef , b/217414933 )
সংস্করণ 2.5.0-alpha02
ফেব্রুয়ারী 9, 2022
androidx.navigation:navigation-*:2.5.0-alpha02
প্রকাশিত হয়েছে। সংস্করণ 2.5.0-alpha02 এই কমিট ধারণ করে।
বাগ ফিক্স
- নেভিগেশন
2.4.1
থেকে : নেস্টেড গ্রাফের সাথে ভিউবাইন্ডিং ব্যবহার করার সময়NavHostFragment
এখন সঠিকভাবেOnBackPressedDispatcher
সেট করবে। ( Ifbb51 , b/214577959 ) - নেভিগেশন
2.4.1
থেকে : যখন একাধিক নেস্টেডNavGraph
s এর মাধ্যমে গভীর লিঙ্ক করা হয় তখন ব্যাক স্ট্যাকটি সঠিকভাবে মধ্যবর্তী শুরু গন্তব্যগুলিকে অন্তর্ভুক্ত করবে। ( I504c0 , b/214383060 )
সংস্করণ 2.5.0-alpha01
জানুয়ারী 26, 2022
androidx.navigation:navigation-*:2.5.0-alpha01
প্রকাশিত হয়েছে। সংস্করণ 2.5.0-alpha01-এ এই কমিট রয়েছে।
নতুন বৈশিষ্ট
-
NavBackStackEntry
এখন ViewModel CreationExtras-এর সাথে একীভূত হয়েছে, যা Lifecycle2.5.0-alpha01
এর অংশ হিসেবে প্রবর্তিত হয়েছে। ( Ib9fe2 , b/207012490 )
বাগ ফিক্স
- একটি সমস্যা সমাধান করা হয়েছে যেখানে একটি ফ্র্যাগমেন্টের
onCreate()
থেকেby navGraphViewModels()
তৈরি একটিViewModel
অ্যাক্সেস করা একটিIllegalStateException
এর সাথে ব্যর্থ হবে। ( I8a14d ) -
NavDeepLink
s আর অপ্রয়োজনীয়ভাবে আরগস দুবার ডিকোড করবে না, যার মানে সঠিক আর্গগুলি এখন আপনার চূড়ান্ত গন্তব্যে চলে গেছে। ( I31b0a , b/210711399 )
নিরাপদ Args
- সেফ আর্গস এখন অ্যান্ড্রয়েড গ্রেডল প্লাগইন সংস্করণ 7.0.4 এর উপর নির্ভর করে। এর মানে হল যে নেভিগেশন সেফ আর্গস আর 7.0-এর আগের অ্যান্ড্রয়েড স্টুডিও সংস্করণগুলির সাথে সামঞ্জস্যপূর্ণ হবে না, কিন্তু এখন Android Gradle Plugin 7.1.0 এবং উচ্চতর সংস্করণগুলির সাথে সামঞ্জস্যপূর্ণ। ( I41c88 , b/213086135 , b/207670704 )
সংস্করণ 2.4.2
সংস্করণ 2.4.2
6 এপ্রিল, 2022
androidx.navigation:navigation-*:2.4.2
প্রকাশিত হয়েছে। সংস্করণ 2.4.2-এ এই কমিট রয়েছে।
বাগ ফিক্স
- নেভিগেশন
2.5.0-alpha03
থেকে ব্যাকপোর্ট করা হয়েছে :NavDeepLinks
এখন সঠিকভাবে রুট/ডিপ লিঙ্ক URI-তে এমবেড করা এনকোড করা নতুন লাইন অক্ষর সমর্থন করে। ( I513d1 , b/217815060 ) - নেভিগেশন
2.5.0-alpha03
থেকে ব্যাকপোর্ট করা : নেভিগেশন SafeArgs এখন AndroidManifest-এ প্যাকেজের জায়গায়build.gradle
এ সংজ্ঞায়িত নামস্থান ব্যবহার করে সমর্থন করে। ( I659ef , b/217414933 ) - নেভিগেশন
2.5.0-alpha04
থেকে ব্যাকপোর্ট করা হয়েছে :Navigation Safe Args
নেমস্পেস ব্যবহার করার সময় আর ক্র্যাশ হবে না এবং কোনওAndroidManifest.xml
উপস্থিত নেই৷ ( I17ccf , b/227229815 ) - নেভিগেশন
2.5.0-alpha04
থেকে ব্যাকপোর্ট করা : খালি স্ট্রিং এখন গভীর লিঙ্কে বৈধ আর্গুমেন্ট হিসাবে বিবেচিত হয়। ( I70a0d , b/217399862 )
সংস্করণ 2.4.1
সংস্করণ 2.4.1
ফেব্রুয়ারী 9, 2022
androidx.navigation:navigation-*:2.4.1
প্রকাশিত হয়েছে। সংস্করণ 2.4.1-এ এই কমিট রয়েছে।
বাগ ফিক্স
- নেস্টেড গ্রাফের সাথে ভিউবাইন্ডিং ব্যবহার করার সময়
NavHostFragment
এখন সঠিকভাবেOnBackPressedDispatcher
সেট করবে। ( Ifbb51 , b/214577959 ) - একাধিক নেস্টেড
NavGraph
এর মাধ্যমে গভীর লিঙ্ক করার সময় ব্যাক স্ট্যাক এখন সঠিকভাবে মধ্যবর্তী শুরু গন্তব্যগুলি অন্তর্ভুক্ত করবে। ( I504c0 , b/214383060 ) - নেভিগেশন
2.5.0-alpha01
থেকে ব্যাকপোর্ট করা : একটি সমস্যা সমাধান করা হয়েছে যেখানে একটি ফ্র্যাগমেন্টেরonCreate()
by navGraphViewModels()
মাধ্যমে তৈরি একটি ভিউমডেল অ্যাক্সেস করা একটিIllegalStateException
এর সাথে ব্যর্থ হবে। ( I8a14d ) - নেভিগেশন
2.5.0-alpha01
থেকে ব্যাকপোর্ট করা হয়েছে :NavDeepLink
আর অপ্রয়োজনীয়ভাবে আরগস দুবার ডিকোড করে না, যার মানে সঠিকভাবে ডিকোড করা আর্গগুলি এখন আপনার চূড়ান্ত গন্তব্যে চলে গেছে। ( I31b0a , b/210711399 ) - নেভিগেশন
2.5.0-alpha01
থেকে ব্যাকপোর্ট করা: সেফ আর্গস এখন অ্যান্ড্রয়েড গ্রেডল প্লাগইন সংস্করণ 7.0.4 এর উপর নির্ভর করে। এর মানে হল যে নেভিগেশন সেফ আর্গস আর 7.0-এর আগের অ্যান্ড্রয়েড স্টুডিও সংস্করণগুলির সাথে সামঞ্জস্যপূর্ণ হবে না, কিন্তু এখন Android Gradle Plugin 7.1.0 এবং উচ্চতর সংস্করণগুলির সাথে সামঞ্জস্যপূর্ণ। ( I41c88 , b/213086135 , b/207670704 )
সংস্করণ 2.4.0
সংস্করণ 2.4.0
জানুয়ারী 26, 2022
androidx.navigation:navigation-*:2.4.0
প্রকাশিত হয়েছে। সংস্করণ 2.4.0 এই কমিট ধারণ করে.
2.3.0 থেকে গুরুত্বপূর্ণ পরিবর্তন
- সমস্ত নেভিগেশন শিল্পকর্ম কোটলিনে পুনরায় লেখা হয়েছে। এটি জেনেরিক (যেমন
NavType
সাবক্লাস) ব্যবহার করে ক্লাসের শূন্যতা উন্নত করেছে। সমস্ত Kotlin এক্সটেনশন ফাংশন যা-ktx
আর্টিফ্যাক্টের অংশ ছিল তাদের নিজ নিজ প্রধান শিল্পকর্মে স্থানান্তরিত করা হয়েছে।-ktx
আর্টিফ্যাক্টগুলি প্রকাশিত হতে থাকবে, কিন্তু সম্পূর্ণ খালি। -
navigation-fragment
আর্টিফ্যাক্টে এখন নতুনAbstractListDetailFragment
এর মাধ্যমে একটি দুটি ফলক বিন্যাসের একটি পূর্বনির্মাণ বাস্তবায়ন রয়েছে। এই খণ্ডটি একটি তালিকা ফলক (যা আপনার সাবক্লাস প্রদান করে) এবং একটি বিস্তারিত ফলক পরিচালনা করতে একটিSlidingPaneLayout
ব্যবহার করে, যা একটিNavHostFragment
এর বাস্তবায়ন হিসাবে ব্যবহার করে, যেমনটি আমাদের উদাহরণ বাস্তবায়নে দেখা যায়। -
NavController
এcurrentBackStackEntryAsFlow()
পদ্ধতি একটিFlow
প্রদান করে যা বর্তমানNavBackStackEntry
পরিবর্তিত হলে নির্গত হয়। এই প্রবাহটি একটিOnDestinationChangedListener
ম্যানুয়ালি পরিচালনার বিকল্প হিসাবে ব্যবহার করা যেতে পারে। - NavController এখন পরীক্ষামূলক
visibleEntries
সম্পত্তির মাধ্যমেStateFlow
হিসাবে সমস্ত দৃশ্যমানNavBackStackEntry
উদাহরণগুলির একটি তালিকা পুনরুদ্ধার করার ক্ষমতা প্রদান করে। - কাস্টম NavTypes তৈরি করতে এখন
NavType
ক্লাস প্রসারিত করা সম্ভব৷ কাস্টম প্রকারগুলি শুধুমাত্র তখনই সমর্থিত হয় যখন আপনার ন্যাভিগেশন গ্রাফ প্রোগ্রাম্যাটিকভাবে তৈরি করা হয়, যেমন ন্যাভিগেশন গ্রাফ Kotlin DSL এর মাধ্যমে। নেভিগেশন এখন
findStartDestination()
এবংgetHierarchy()
API প্রদান করে যা কাস্টম নেভিগেশনইউআই বাস্তবায়নে সাহায্য করতে ব্যবহার করা যেতে পারে।findStartDestination()
হলNavGraph
এ একটি এক্সটেনশন ফাংশন যা প্রকৃত সূচনা গন্তব্য সনাক্ত করবে যা আপনি যখন গ্রাফে নেভিগেট করবেন তখন প্রদর্শিত হবে, এমনকিstartDestination
নিজেই একটি নেস্টেডNavGraph
হলেও।getHierarchy()
হলNavDestination
এর একটি ফাংশন যা একটি প্রদত্ত গন্তব্য অন্যটির অনুক্রমের মধ্যে আছে কিনা তা যাচাই করতে ব্যবহার করা যেতে পারে।val matchingRoute: Boolean = destination.hierarchy.any { it.route == routeToFind }
NavigationUI
মেথড যাBottomNavigationView
গ্রহণ করেছে তার পরিবর্তে মেটেরিয়াল1.4.0
,NavigationBarView
এ চালু করা সুপারক্লাস নিতে আপডেট করা হয়েছে। এটি এই পদ্ধতিগুলিকেNavigationRailView
এর সাথে ব্যবহার করার অনুমতি দেয়।XML-এর মাধ্যমে একটি
<action>
উপাদান ফুলিয়ে দেওয়ার সময়, অ্যানিমেশন অ্যাট্রিবিউটগুলিapp:enterAnim="?attr/transitionEnter"
সিনট্যাক্স ব্যবহার করে আপনার থিম থেকে টানা বৈশিষ্ট্যগুলি ব্যবহার করতে পারে।সেফ আর্গস এখন প্রতিটি
NavArgs
ক্লাসের জন্য একটিfromSavedStateHandle()
পদ্ধতি তৈরি করে। ( #122 , b/136967621 )class HomeViewModel(savedStateHandle: SavedStateHandle) : ViewModel() { // Create a HomeDestinationArgs class with type safe accessors for each argument // defined on your destination private val args = HomeDestinationArgs.fromSavedStateHandle(savedStateHandle) }
নেভিগেশন রুট এবং কোটলিন ডিএসএল
নেভিগেশনের পূর্ববর্তী সংস্করণগুলি একটি ধ্রুবক পূর্ণসংখ্যা আইডি থাকা প্রতিটি গন্তব্যের উপর নির্ভর করে যা এটিকে তার ভাইবোন গন্তব্যগুলি থেকে অনন্যভাবে সনাক্ত করবে এবং আপনাকে সরাসরি বা একটি অ্যাকশনের মাধ্যমে সেই গন্তব্যে navigate()
করার অনুমতি দেবে। যদিও এটি বৈধ এবং উপযোগী হতে চলেছে, বিশেষ করে এমন ক্ষেত্রে যেখানে আপনি XML-এ আপনার নেভিগেশন গ্রাফ সংজ্ঞায়িত করছেন এবং স্বয়ংক্রিয়ভাবে তৈরি করা R.id
ধ্রুবক বা নিরাপদ আর্গস ব্যবহার করতে পারেন (যা বিল্ড টাইমে কোড তৈরি করতে সেই ধ্রুবকগুলি ব্যবহার করে), এর এই সিস্টেম অনন্য পূর্ণসংখ্যাগুলি ন্যাভিগেশন কোটলিন ডিএসএল-এর মাধ্যমে রানটাইমে প্রোগ্রাম্যাটিকভাবে নির্মিত সম্পূর্ণ গতিশীল গ্রাফগুলিকে সমর্থন করার জন্য প্রয়োজনীয় শব্দার্থিক অর্থ এবং অভিব্যক্তিকে ধরতে পারেনি।
এই রিলিজটি একটি ন্যাভিগেশন গ্রাফে একটি গন্তব্যকে এর রুট দ্বারা স্বতন্ত্রভাবে শনাক্ত করার জন্য একটি নতুন বিকল্প উপস্থাপন করেছে। একটি রুট হল একটি String
যা একটি গন্তব্যের অনন্য পথকে সংজ্ঞায়িত করে। সমস্ত Kotlin DSL পদ্ধতি যেগুলি একটি গন্তব্য আইডি নিয়েছিল সেগুলি এখন অবচয়িত হয়েছে এবং একটি সমতুল্য API দিয়ে প্রতিস্থাপিত হয়েছে যা একটি রুট নেয়৷
প্রতিটি রুটকে Uri
এর 'পাথ' অংশ হিসাবে বিবেচনা করা উচিত যা সেই গন্তব্যকে সংজ্ঞায়িত করে, যেমন, home
, profile/{userId}
, profile/{userId}/friends
, ইত্যাদি। যখন কোনও গন্তব্যের পরিচয় একটি নির্দিষ্ট সঙ্গে যুক্ত হয় বিষয়বস্তুর অংশ, সেই গতিশীল আর্গুমেন্টগুলি রুটের অংশ হওয়া উচিত, অন্তর্নিহিত গভীর লিঙ্কগুলির মতো একই নিয়ম অনুসরণ করে।
সমস্ত NavController
API যেগুলি শুধুমাত্র একটি ID গ্রহণ করত এখন একটি ওভারলোড রয়েছে যা একটি রুট String
নেয়। এর মধ্যে navigate()
, popBackStack()
, popUpTo()
এবং getBackStackEntry()
অন্তর্ভুক্ত রয়েছে।
এর কিছু API প্রভাব রয়েছে:
- Kotlin DSL-এ
popUpTo
Kotlin সম্পত্তিpopUpToId
এর পক্ষে অবচয় করা হয়েছে। -
getStartDestination()
API-কেgetStartDestinationId()
এর পক্ষে বাতিল করা হয়েছে।
আইডি দ্বারা নেভিগেট করার সময় ভিন্ন, রুট দ্বারা নেভিগেট করা অন্তর্নিহিত গভীর লিঙ্কগুলির মতো একই নিয়ম অনুসরণ করে যাতে আপনি যে কোনও নেস্টেড গ্রাফে যে কোনও গন্তব্যে সরাসরি নেভিগেট করতে পারেন, এই রুটগুলি স্পষ্টভাবে কোনও বাহ্যিকভাবে দৃশ্যমান গভীর লিঙ্ক যুক্ত না করে বহু-মডিউল প্রকল্পগুলিতে ব্যবহারযোগ্য তা নিশ্চিত করে। প্রতিটি গন্তব্যে।
নেভিগেশন রচনা
navigation-compose
আর্টিফ্যাক্ট নেভিগেশন কম্পোনেন্ট এবং জেটপ্যাক কম্পোজের মধ্যে ইন্টিগ্রেশন প্রদান করে। এটি আপনার অ্যাপ্লিকেশনে গন্তব্য হিসাবে @Composable
ফাংশন ব্যবহার করে।
এই রিলিজ প্রদান করে:
- একটি
NavHost
কম্পোজেবল যা আপনাকে Kotlin DSL এর মাধ্যমে আপনার নেভিগেশন গ্রাফ তৈরি করতে দেয়,composable
এবংdialog
গন্তব্যগুলি ব্যবহার করে, এছাড়াও ঐচ্ছিক ন্যাভিগেটরগুলির জন্য সমর্থন যেমন Accompanist নেভিগেশন ম্যাটেরিয়াল থেকে। - গন্তব্যগুলির মধ্যে ক্রসফেডিংয়ের জন্য বাধ্যতামূলক সমর্থন। পরীক্ষামূলক রচনা API ব্যবহার করে প্রবেশ এবং প্রস্থান ট্রানজিশন নিয়ন্ত্রণ করতে সঙ্গী নেভিগেশন অ্যানিমেশন ব্যবহার করা যেতে পারে।
- প্রতিটি সংমিশ্রণযোগ্য গন্তব্যে একটি
Lifecycle
স্কোপিং। প্রতিটি গন্তব্য শুধুমাত্রRESUMED
অবস্থায় পৌঁছায় যখন যেকোন প্রবেশের ট্রানজিশন শেষ হয় এবং যেকোন প্রস্থান ট্রানজিশন শুরু হলে অবিলম্বেSTARTED
এ নেমে যায়, এইভাবেLifecycle
RESUMED
হলে শুধুমাত্র একটিnavigate
কল ট্রিগার করার মাধ্যমে আপনাকে সমস্তIllegalStateException
এবং মাল্টি-টাচ সমস্যা এড়াতে অনুমতি দেয়। - গন্তব্য স্তরে হিল্ট নেভিগেশন কম্পোজ
1.0.0
-এর লাইফসাইকেল ভিউমডেল কম্পোজ2.4.0
বাhiltViewModel()
viewModel()
API-এর মাধ্যমেViewModel
এর স্কোপিং, একটি সুযোগ প্রদান করে যা কনফিগারেশন পরিবর্তনগুলিকে টিকে থাকে এবং ব্যাক স্ট্যাকের উপর থাকে (যখন আপনার কম্পোজযোগ্য বিষয়বস্তু অন্যথায় নিষ্পত্তি করা হয়) এবং ViewModel-এরonCleared()
-এ একটি সংকেত যা সেইNavBackStackEntry
এর সাথে যুক্ত রাষ্ট্রের স্থায়ী নিষ্পত্তি এবং পরিষ্কার করার নির্দেশ করে। - একটি গন্তব্য স্তরে
rememberSaveable
অবস্থার স্কোপিং, আপনি যখন একটি গন্তব্যে ফিরে আসবেন তখন সমস্ত সংমিশ্রণযোগ্য স্থিতি স্বয়ংক্রিয়ভাবে সংরক্ষিত এবং পুনরুদ্ধার করা হয়েছে তা নিশ্চিত করে। - প্রক্রিয়া মৃত্যু এবং বিনোদনের পরে
NavController
এবং এর গন্তব্যের অবস্থা সংরক্ষণ এবং পুনরুদ্ধারের জন্য সম্পূর্ণ সমর্থন। - সিস্টেম ব্যাক বোতামের সাথে স্বয়ংক্রিয় ইন্টিগ্রেশন।
আর্গুমেন্ট পাস করার জন্য সমর্থন, গন্তব্যে গভীর লিঙ্ক সংযুক্ত করা, এবং পূর্ববর্তী গন্তব্যে একটি ফলাফল ফেরত.
rememberNavController()
এবংcurrentBackStackEntryAsState()
এ নির্দিষ্ট সহায়ক রচনা করুন যাতে উত্তোলন অবস্থার অনুমতি দেওয়া যায় এবংNavHost
এর বাইরে কম্পোজেবলের সাথেNavController
কে সংযুক্ত করা যায় (যেমন নীচের নেভিগেশন বার)।
val navController = rememberNavController()
Scaffold { innerPadding ->
NavHost(navController, "home", Modifier.padding(innerPadding)) {
composable("home") {
// This content fills the area provided to the NavHost
HomeScreen()
}
dialog("detail_dialog") {
// This content will be automatically added to a Dialog() composable
// and appear above the HomeScreen or other composable destinations
DetailDialogContent()
}
}
}
আরও তথ্যের জন্য রচনা ন্যাভিগেশন গাইড দেখুন।
একাধিক ব্যাক স্ট্যাক
NavController গন্তব্যগুলির পিছনের স্ট্যাক পরিচালনার জন্য দায়ী, যখন আপনি তাদের navigate()
তখন পিছনের স্ট্যাকে গন্তব্যগুলি যোগ করে এবং আপনি যখন popBackStack()
কল করেন বা সিস্টেম ব্যাক বোতামটি ট্রিগার করেন তখন সেগুলি সরানোর জন্য। বিদ্যমান NavOptions
ক্লাস এবং নেভিগেশন গ্রাফ XML-এ <action>
উপাদানগুলির মধ্যে একীকরণ ব্যাক স্ট্যাক সংরক্ষণ এবং পুনরুদ্ধার সমর্থন করার জন্য প্রসারিত করা হয়েছে।
এই পরিবর্তনের অংশ হিসাবে, onNavDestinationSelected()
, BottomNavigationView.setupWithNavController()
এবং NavigationView.setupWithNavController()
এর NavigationUI
পদ্ধতিগুলি এখন স্বয়ংক্রিয়ভাবে পপ করা গন্তব্যগুলির অবস্থা সংরক্ষণ এবং পুনরুদ্ধার করে, কোনো কোড পরিবর্তন ছাড়াই একাধিক ব্যাক স্ট্যাকের জন্য সমর্থন সক্ষম করে৷ ফ্র্যাগমেন্টের সাথে নেভিগেশন ব্যবহার করার সময়, এটি একাধিক ব্যাক স্ট্যাকের সাথে একীভূত করার প্রস্তাবিত উপায়।
রাজ্য সংরক্ষণ এবং পুনরুদ্ধার করার জন্য অন্তর্নিহিত APIগুলি বেশ কয়েকটি পৃষ্ঠের মাধ্যমে উন্মুক্ত করা হয়েছে:
নেভিগেশন XML-এ,
<action>
উপাদানটি এখনapp:popUpToSaveState
এবংapp:restoreState
এর বুলিয়ান অ্যাট্রিবিউট ব্যবহার করতে পারেapp:popUpTo
এর মাধ্যমে পপ করা যেকোন গন্তব্যের অবস্থা সংরক্ষণ করতে এবংapp:destination
হিসেবে পাস করা গন্তব্যের সাথে সম্পর্কিত অবস্থা পুনরুদ্ধার করতে পারে।<action android:id=”@+id/swap_stack” app:destination=”@id/second_stack” app:restoreState=”true” app:popUpTo=”@id/first_stack_start_destination” app:popUpToSaveState=”true” />
navOptions
Kotlin DSL- এ, আপনিrestoreState
বুলিয়ান প্রপার্টি এবংsaveState
বুলিয়ান প্রপার্টিpopUpTo
বিল্ডারে যোগ করতে পারেন:// Use the navigate() method that takes a navOptions DSL Builder navController.navigate(selectedBottomNavRoute) { launchSingleTop = true restoreState = true popUpTo(navController.graph.findStartDestination().id) { saveState = true } }
NavOptions.Builder
এর মাধ্যমে ম্যানুয়ালি একটিNavOptions
অবজেক্ট তৈরি করতে, আপনিsetRestoreState()
এবংsetPopUpTo()
এ নতুন ওভারলোড ব্যবহার করতে পারেন যা একটি অতিরিক্তsaveState
প্যারামিটার নেয়।NavOptions navOptions = new NavOptions.Builder() .setLaunchSingleTop(true) .setRestoreState(true) .setPopUpTo(NavGraph.findStartDestination(navController.getGraph()).getId(), false, // inclusive true) // saveState .build(); navController.navigate(selectedBottomNavId, null, navOptions);
popBackStack()
এ প্রোগ্রাম্যাটিক কল এখন একটি অতিরিক্তsaveState
প্যারামিটার অন্তর্ভুক্ত করতে পারে।popBackStack()
বাpopUpToSaveState
দিয়ে সংরক্ষিত যেকোন অবস্থা সাফ করতে আপনিclearBackStack()
পদ্ধতি ব্যবহার করতে পারেন।
সমস্ত ক্ষেত্রে, NavController
প্রতিটি NavBackStackEntry
এর অবস্থা সংরক্ষণ করবে এবং পুনরুদ্ধার করবে, যেকোন নেভিগেশন গন্তব্য স্কোপড ViewModel
উদাহরণ সহ। প্রতিটি Navigator
তাদের নিজস্ব অবস্থা সংরক্ষণ এবং পুনরুদ্ধার করতে সহায়তা করার জন্য Navigator
APIগুলি আপডেট করা হয়েছে।
আচরণ পরিবর্তন
-
NavDeepLinkBuilder
এখনcreatePendingIntent()
দ্বারা ফিরে আসাPendingIntent
এPendingIntent.FLAG_IMMUTABLE
যোগ করে, নিশ্চিত করে যে এই APIটি Android 12 টার্গেট করার সময় প্রত্যাশিতভাবে কাজ করে। - নেভিগেশন এখন লাইফসাইকেল
2.3.1
এর উপর নির্ভর করে এবং এখনsetGraph()
,popBackStack()
,navigateUp()
, এবংnavigate()
চিহ্নিত করে, যে পদ্ধতিগুলিNavBackStackEntry
Lifecycle
আপডেট করে,@MainThread
হিসাবে, লাইফসাইকেলে প্রধান থ্রেডের সাথে নেভিগেশন সারিবদ্ধ করে2.3.0
- ডিপ লিঙ্কগুলি এখন যাচাই করে যে সমস্ত প্রয়োজনীয় আর্গুমেন্ট (ডিফল্ট মান ছাড়াই)
Uri
তে উপস্থিত রয়েছে। -
NavDeepLink
পার্স করা আর্গুমেন্টগুলি এখন পাউন্ড চিহ্নগুলিকে পাউন্ড চিহ্নগুলির মধ্যে বিভাজক হিসাবে বিভাজক হিসাবে বিবেচনা করে, একটি যুক্তিকে পাউন্ড চিহ্ন জুড়ে বিস্তৃত হতে বাধা দেয়৷ - অ্যাকশন তৈরি করার সময়, Safe Args থেকে জেনারেট করা Kotlin কোড এখন ডিফল্ট মান ছাড়াই আর্গুমেন্টগুলিকে প্যারামিটার হিসেবে ডিফল্ট মানগুলির আগে রাখে।
- আর্গুমেন্ট তৈরি করার সময়, Safe Args এখন ডিফল্ট মান ছাড়া প্যারামিটারগুলিকে ডিফল্ট মানগুলির আগে রাখে।
- Safe-Args এখন Android Gradle Plugin 4.2.0 এর উপর নির্ভর করে। এর মানে হল আপনি আর
applicationIdTextResource
সতর্কতা ব্যবহার করবেন না।
জ্ঞাত সমস্যা
- নেভিগেশন
2.5.0-alpha01
এ স্থির: একটি ফ্র্যাগমেন্টেরonCreate()
থেকেby navGraphViewModels()
তৈরি একটিViewModel
অ্যাক্সেস করা একটিIllegalStateException
এর সাথে ব্যর্থ হবে। ( b/213504272 ) - ন্যাভিগেশন
2.5.0-alpha01
এ স্থির: সেফ আর্গস 2.4.0 অ্যান্ড্রয়েড গ্রেডল প্লাগইন 7.1.0 এবং উচ্চতরের সাথে বেমানান৷ ( b/213086135 ) - একাধিক নেস্টেড এনএভি গ্রাফের সাথে গভীর সংযোগ সঠিকভাবে সম্পূর্ণ ব্যাকস্ট্যাক তৈরি করে না। ( b/214383060 )
সংস্করণ 2.4.0-rc01
15 ডিসেম্বর, 2021
androidx.navigation:navigation-*:2.4.0-rc01
প্রকাশিত হয়েছে। সংস্করণ 2.4.0-rc01-এ এই কমিট রয়েছে।
আচরণ পরিবর্তন
-
NavDeepLink
পার্স করা আর্গুমেন্টগুলি এখন পাউন্ড চিহ্নগুলিকে একই ভাবে বিবেচনা করে যেমন প্রশ্ন চিহ্নগুলিকে আর্গুমেন্টের মধ্যে বিভাজক হিসাবে বিবেচনা করে৷ ( I21309 , b/180042703 )
বাগ ফিক্স
- ডিপলিংক আর আর্গুমেন্ট উপেক্ষা করবে না যে মানগুলি স্থানধারকের নামের মতো। ( if8017 , b/207389470 )
-
NavController
পুনরুদ্ধার করার পরে ট্রানজিশন ব্যবহার করে নেস্টেড গন্তব্য পপ করার সময়NavController
আর ক্র্যাশ হবে না। ( I0f7c9 , b/205021623 ) - একটি অবৈধ
startDestination
ব্যবহার করার সময় ত্রুটি বার্তাটি এখন প্রারম্ভিক গন্তব্যের রুটে ডিফল্ট হবে যদি একটি উপলব্ধ থাকে। ( I86b9d , b/208041894 )
নেভিগেশন কম্পোজ বাগ ফিক্স
- নীচের নেভি মেনু আইটেমগুলি ব্যবহার করে শুরুর গন্তব্য এবং অন্য গন্তব্যের মধ্যে দ্রুত স্যুইচিংয়ের কারণে সম্ভাব্য ক্র্যাশ স্থির করা হয়েছে। ( Ic8976 , b/208887901 )
- কনফিগার পরিবর্তন বা মৃত্যু প্রক্রিয়া করার পরে ডায়ালগ গন্তব্য এখন সঠিকভাবে স্ক্রিনের উপরে পুনরুদ্ধার করা হয়েছে। ( I4c0dc , b/207386169 )
- একটি সমস্যা সমাধান করা হয়েছে যেখানে ডায়ালগের
NavBackStackEntry
থেকে একটিViewModel
পুনরুদ্ধার করার চেষ্টা করা ব্যর্থ হবে যখন ডায়ালগটি খারিজ হয়ে যাবে৷ ( I6b96d , b/206465487 ) - নেভিগেশন কম্পোজের
NavHost
এর সাথেactivity
গন্তব্য ব্যবহার করার সময় একটি সমস্যা সমাধান করা হয়েছে যার ফলে অসীম পুনর্গঠন হবে। ( I8f64c ) - নেভিগেশন কম্পোজে একটি ফাঁস সংশোধন করা হয়েছে যেখানে এটি কনফিগার পরিবর্তন বা প্রক্রিয়া মৃত্যুর পরে পুরানো কার্যকলাপের একটি রেফারেন্স ধরে রেখেছিল। ( I4efcb , b/204905432 )
নিরাপদ Args বাগ সংশোধন
- প্রক্রিয়া মৃত্যুর পরে কাস্টম পার্সেলেবল অ্যারে পুনরুদ্ধার করার চেষ্টা করার সময়
SafeArgs
আর ক্র্যাশ হয় না। ( I618e8 , b/207315994 ) - নিরাপদ আর্গসে একটি বাগ সংশোধন করা হয়েছে যা বুলিয়ান অ্যারেগুলির একটি
null
মান থাকতে দেয় না। ( I8c396 , b/174787525 )
সংস্করণ 2.4.0-beta02
3 নভেম্বর, 2021
androidx.navigation:navigation-*:2.4.0-beta02
প্রকাশিত হয়েছে। সংস্করণ 2.4.0-beta02 এই কমিট ধারণ করে।
এপিআই পরিবর্তন
- সুস্পষ্ট এবং অন্তর্নিহিত গভীর লিঙ্ক উভয়ের হ্যান্ডলিং এখন অন্য গ্রাফে নেভিগেট করার সময় স্বয়ংক্রিয়ভাবে
saveState
ফ্ল্যাগ যুক্ত করে, নিশ্চিত করে যে কোড যেমনNavigationUI.setupWithNavController
এবং একাধিক ব্যাক স্ট্যাক ব্যবহার করে কোড প্রত্যাশিতভাবে কাজ করে। ( IC8807 )
আচরণ পরিবর্তন
- ডিপ লিঙ্ক প্যাটার্ন এখন মুদ্রাস্ফীতির পরিবর্তে NavDeepLink-এ অলসভাবে সংকলিত হয়। এটি নেভিগেশন গ্রাফের মুদ্রাস্ফীতির সময়কে উন্নত করতে হবে যাতে গভীর লিঙ্কগুলি অন্তর্ভুক্ত থাকে। ( b8d257 , b/184149935 )
বাগ ফিক্স
- একটি সমস্যার সমাধান করা হয়েছে যেখানে NavBackStackEntry
NavHost
Lifecycle.State.CREATED
Lifecycle.State.STARTED
সরানোর পরে নিচের দিকে ঠেলে দেওয়া হচ্ছেsetContent()
( Ia5ac1 , b/203536683 ) - একটি রেস শর্ত স্থির করা হয়েছে যেখানে ডায়ালগ দেখানোর আগে একটি
DialogFragment
গন্তব্য ব্যাক স্ট্যাকের বাইরে পপ করা আসলে ডায়ালগটি খারিজ করবে না, যার ফলে ব্যবহারকারীর দ্বারা ভুল ডায়ালগটি ম্যানুয়ালি খারিজ করা হলে একটি ক্র্যাশ হবে৷ ( I687e5 ) - এমন একটি সমস্যা সমাধান করা হয়েছে যেখানে
NavigationUI
-তেonNavDestinationSelected
APItrue
ফিরে আসবে এমনকি যদি আপনি আসলে সেই নেভিগেশন গ্রাফেnavigate()
না করেন। এটি এখন গন্তব্যেরhierarchy
ব্যবহার করে বর্তমান গন্তব্যের সাথে যুক্তMenuItem
নির্বাচন করতেsetupWithNavController
দ্বারা অভ্যন্তরীণভাবে ব্যবহৃত একই যুক্তি ব্যবহার করে। ( I2b053 )
সংস্করণ 2.4.0-beta01
27 অক্টোবর, 2021
androidx.navigation:navigation-*:2.4.0-beta01
প্রকাশিত হয়েছে। সংস্করণ 2.4.0-beta01-এ এই কমিট রয়েছে।
নতুন বৈশিষ্ট
- আপনি এখন
by navGraphViewModel
একটি ID ব্যবহার করার বিকল্প হিসাবে রুট সহ ব্যবহার করতে পারেন যাতে ফ্র্যাগমেন্ট সহ ন্যাভিগেশন Kotlin DSL ব্যবহার করে আরও ভাল সমর্থন করা যায়৷ ( I901e3 , b/201446416 )
এপিআই পরিবর্তন
-
visibleEntries
এপিআই এখন পরীক্ষামূলক। ( I93f6f )
বাগ ফিক্স
- একই স্ক্রিনের মধ্যে সামনে পিছনে নেভিগেট করার মাধ্যমে রূপান্তরগুলি বাধাগ্রস্ত হলে ভিউ মডেলগুলি আর ধ্বংস হবে না ( Id52d8 , b/200817333 )
- নালযোগ্য
NavDeepLink
আর্গুমেন্টের আর ডিফল্ট মানের প্রয়োজন হয় না যখনNavDestination
s-এ গভীর লিঙ্ক যোগ করা হয়। ( I5aad4 , b/201320030 ) - বিভিন্ন লাইফসাইকেল সহ NavBackStackEntry এখন আর সমান বলে বিবেচিত হয় না। এর মানে হল একক টপ দিয়ে নেভিগেশন করার সময় এবং নীচের মেনু আইটেমগুলি পুনরায় নির্বাচন করার সময় NavHost সঠিকভাবে সমস্ত গন্তব্যগুলিকে পুনরায় কম্পোজ করবে৷ ( I1b351 , b/196997433 )
-
AbstractListDetailFragment
এর সাথে একটি সমস্যা সমাধান করা হয়েছে যাonCreateListPaneView()
দ্বারা ফেরত তালিকা ফলকেরlayout_width
এবংlayout_weight
বৈশিষ্ট্যগুলিকে ভুলভাবে পরিচালনা বা উপেক্ষা করা হয়েছে৷ ( f5fbf3 ) - ডায়ালগ গন্তব্যের ভিজ্যুয়াল অবস্থা এখন সঠিকভাবে
DialogFragmentNavigator
অবস্থার সাথে সিঙ্কে থাকে। এর অর্থ হ'লDialogFragment
জন্য অ্যাসিঙ্ক্রোনাসdismiss()
API-কে ম্যানুয়ালি কল করা এখন খারিজ করা ডায়ালগের উপরে সমস্ত ডায়ালগ গন্তব্যগুলিকে সঠিকভাবে সাফ করে। এটি সেই ক্ষেত্রে প্রভাবিত করে না যেখানে আপনি আপনার ডায়ালগ খারিজ করতেpopUpTo
বাpopBackStack()
ব্যবহার করেন। ( I77ba2 ) -
AbstractAppBarOnDestinationChangedListener
এখনonDestinationChanged()
এর জন্য আরও পরিষ্কার ত্রুটি বার্তা রয়েছে। ( IE742d )
সংস্করণ 2.4.0-alpha10
29 সেপ্টেম্বর, 2021
androidx.navigation:navigation-*:2.4.0-alpha10
প্রকাশিত হয়েছে। সংস্করণ 2.4.0-alpha10 এই কমিট ধারণ করে।
নতুন বৈশিষ্ট
- NavController এখন
visibleEntries
StateFlow ( Ia964e ) এর মাধ্যমে সমস্ত দৃশ্যমানNavBackStackEntry
দৃষ্টান্তগুলির একটি তালিকা পুনরুদ্ধার করার ক্ষমতা প্রদান করে -
rememberNavController()
এখনNavigator
দৃষ্টান্তগুলির একটি ঐচ্ছিক সেট নেয় যা ফেরত দেওয়াNavController
এ যোগ করা হবে যাতে ঐচ্ছিক ন্যাভিগেটরগুলি যেমন Accompanist ন্যাভিগেশন ম্যাটেরিয়াল থেকে আরও ভাল সমর্থন করতে পারে। ( I4619e )
বাগ ফিক্স
- অ্যাক্টিভিটি পুনরায় তৈরি করা হলে ডায়নামিক নেভিগেশন আর ক্র্যাশ হবে না। ( ifa6a3 , b/197942869 )
- সিস্টেম ব্যাক বোতামের সাথে একটি সমস্যা সমাধান করা হয়েছে যা একটি
NavHost
ধারণকারী একটি সংমিশ্রণযোগ্য গন্তব্যে ফিরে আসার পরেই ঘটে। ( 3ed148 , b/195668143 ) - SafeArgs এখন
fromBundle()
এবংfromSavedStateHandle()
সঠিক প্যারামিটার ক্রমে আর্গুমেন্ট তৈরি করে। ( I824a8 , b/200059831 )
সংস্করণ 2.4.0-alpha09
15 সেপ্টেম্বর, 2021
androidx.navigation:navigation-*:2.4.0-alpha09
প্রকাশিত হয়েছে। সংস্করণ 2.4.0-alpha09 এই কমিট ধারণ করে।
নতুন বৈশিষ্ট
-
popBackStack()
বাpopUpToSaveState
দিয়ে সংরক্ষিত যেকোন অবস্থা সাফ করতে আপনি এখনclearBackStack()
পদ্ধতি ব্যবহার করতে পারেন। ( I80a0f ) - আপনি এখন আপনার নেস্টেড নেভিগেশন গ্রাফের বিল্ডারের আর্গুমেন্ট এবং/অথবা গভীর লিঙ্কগুলির একটি তালিকায় পাস করতে পারেন এবং সেগুলি স্বয়ংক্রিয়ভাবে ফলাফল গ্রাফে যুক্ত হবে। ( I8a470 , b/182545357 )
এপিআই পরিবর্তন
-
navArgument
Kotlin DSL ফাংশন এখনnavigation-compose
এর পরিবর্তেnavigation-common
এর অংশ। এই ফাংশন ব্যবহার করা চালিয়ে যেতে আমদানি আপডেট করার প্রয়োজন হবে৷ ( I1d095 )
আচরণ পরিবর্তন
- আর্গুমেন্ট তৈরি করার সময়, Safe Args এখন ডিফল্ট মান ছাড়া প্যারামিটারগুলিকে ডিফল্ট মানগুলির আগে রাখে। ( I89709 , b/198493585 )
বাগ ফিক্স
- নেভিগেশন কম্পোজ ব্যবহার করার সময়, তাদের সমস্ত সন্তান
DESTROYED
হয়ে গেলেই NavGraphগুলিDESTROYED
করা হবে৷ ( I86552 , b/198741720 ) - বাতিলযোগ্য
NavDeepLink
আর্গুমেন্টের আর ডিফল্ট মান প্রয়োজন নেই। ( IA14ef , b/198689811 ) - একটি নতুন গ্রাফের সাথে
setGraph()
কে কল করা এখন ব্যাক স্ট্যাক পপ করার আগের আচরণের সাথে যেকোনও সংরক্ষিত ব্যাক স্ট্যাকগুলিও পরিষ্কার করবে। ( I97f96 ) - একটি সমস্যা সমাধান করা হয়েছে যেখানে
launchSingleTop
ব্যবহার করার সময়OnDestinationChangedListener
দৃষ্টান্ত এবংcurrentBackStackEntryFlow
BackStackEntryFlow বিজ্ঞপ্তি দেওয়া হয়নি। ( আইএএইবিসি )
নির্ভরতা আপডেট
- নেভিগেশন রচনা এখন কার্যকলাপ রচনা 1.3.1 এর উপর নির্ভর করে। ( I05829 )
- নেভিগেশন রচনা এখন নির্ভর করে লাইফসাইকেল ভিউমডেল কম্পোজ
2.4.0-beta01
এর উপর। ( Ib86a3 )
সংস্করণ 2.4.0-alpha08
1 সেপ্টেম্বর, 2021
androidx.navigation:navigation-*:2.4.0-alpha08
প্রকাশিত হয়েছে। সংস্করণ 2.4.0-alpha08 এই কমিট ধারণ করে।
নতুন বৈশিষ্ট
- কাস্টম NavTypes তৈরি করতে এখন
NavType
ক্লাস প্রসারিত করা সম্ভব৷ কাস্টম প্রকারগুলি শুধুমাত্র তখনই সমর্থিত হয় যখন আপনার ন্যাভিগেশন গ্রাফ প্রোগ্রাম্যাটিকভাবে তৈরি করা হয়, যেমন ন্যাভিগেশন গ্রাফ Kotlin DSL এর মাধ্যমে। ( I78440 , b/196871885 )
আচরণ পরিবর্তন
- অ্যাকশন তৈরি করার সময়, Safe Args থেকে জেনারেট করা Kotlin কোড এখন ডিফল্ট মান ছাড়াই আর্গুমেন্টগুলিকে প্যারামিটার হিসেবে ডিফল্ট মানগুলির আগে রাখে। ( আইডিবি697 , বি/188855904 )
- ডিপ লিঙ্কগুলি এখন যাচাই করে যে সমস্ত প্রয়োজনীয় আর্গুমেন্ট (ডিফল্ট মান ছাড়াই)
Uri
তে উপস্থিত রয়েছে। ( #204 , b/185527157 )
বাগ ফিক্স
- composable() এর ভিতরে
getBackStackEntry
এবংpreviousBackStackEntry
ব্যবহার করে,remember()
, ব্যাক স্ট্যাকে কোনো গন্তব্য না থাকার জন্য আর কোনো ব্যতিক্রম ঘটবে না। ( I75138 , b/194313238 ) - ব্যাক স্ট্যাক আর্গুমেন্ট পরিবর্তন করার সময় এবং
launchSingleTop=true
ব্যবহার করার সময় নেভিগেশন কম্পোজ এখন সঠিকভাবে পুনরায় কম্পোজ করে। ( Iebd69 , b/186392337 ) - 13 বা 29টি গন্তব্য সহ একটি গ্রাফ সহ
setGraph
কল করার সময় আর একটিArrayIndexOutOfBoundsException
থাকবে না৷ ( I1a9f1 , b/195171984 ) - Args ক্লাস তৈরি করার সময় SafeArgs java জেনারেটর আর লিন্ট সতর্কতা সৃষ্টি করবে না। ( I1a666 , b/185843837 )
বাহ্যিক অবদান
- ধন্যবাদ ospixd নিশ্চিত করার জন্য যে গভীর লিঙ্কগুলি যাচাই করে যে সমস্ত প্রয়োজনীয় আর্গুমেন্ট (ডিফল্ট মান ছাড়াই)
Uri
তে উপস্থিত রয়েছে। ( #204 , b/185527157 )
সংস্করণ 2.4.0-alpha07
18 আগস্ট, 2021
androidx.navigation:navigation-*:2.4.0-alpha07
প্রকাশিত হয়েছে। সংস্করণ 2.4.0-alpha07 এই কমিট ধারণ করে।
বাগ ফিক্স
- ন্যাভিগেশন রচনা এখন কনফিগারেশন পরিবর্তনের পরে এবং একাধিক ব্যাক স্ট্যাক বৈশিষ্ট্য ব্যবহার করার সময় গ্রাফ পরিবর্তন করার সময় সঠিকভাবে স্থিতি সংরক্ষণ করে। ( if5a3d , b/195141957 )
- একাধিক ব্যাক স্ট্যাকের সাথে নেভিগেশন কম্পোজ ব্যবহার করার সময় একই ট্যাব পুনরায় নির্বাচন করলে আর একটি ফাঁকা স্ক্রীন হবে না। ( I860dc , b/194925622 )
-
NavHost
এখনLifecycle.State
পরিবর্তনের জন্য পর্যবেক্ষণ করছে।NavBackStackEntry
s-এর রাজ্য যার মানে এখন একটি খণ্ডে একটিNavHost
ব্যবহার করলে সঠিকভাবে পুনর্গঠন করা হবে কারণ একটি ফাঁকা স্ক্রীনের পরিবর্তে জীবনচক্র পরিবর্তন হয়। ( I4eb85 , b/195864489 ) - একটি সমস্যা সমাধান করা হয়েছে যেখানে একটি
DialogFragment
খারিজ করলে আপনার কার্যকলাপ পুনরায় তৈরি করার পরে (যেমন, কনফিগারেশন পরিবর্তনের পরে) সঠিকভাবেNavController
অবস্থা আপডেট হবে না। ( আইসিডি৭২বি ) - একটি সমস্যা সমাধান করা হয়েছে যেখানে একটি ডায়ালগ গন্তব্য পপ করার ফলে NavController-এর সিস্টেম ব্যাক বোতাম হ্যান্ডলিং আপডেট হবে না, সম্ভাব্যভাবে NavController ব্যাক বোতামটিকে আটকাতে পারে যদিও এতে পপ করার জন্য কোনও ব্যাক স্ট্যাক নেই৷ ( if3b34 )
- Safe-args এখন স্বয়ংক্রিয়ভাবে আর্গুমেন্টের জন্য একটি
toSavedStateHandle
পদ্ধতি তৈরি করে যা আপনারViewModel
কোড পরীক্ষা করতে ব্যবহার করা যেতে পারে। ( if1e2d , b/193353880 )
সংস্করণ 2.4.0-alpha06
4 আগস্ট, 2021
androidx.navigation:navigation-*:2.4.0-alpha06
প্রকাশিত হয়েছে। সংস্করণ 2.4.0-alpha06 এই কমিট ধারণ করে।
এপিআই পরিবর্তন
-
AbstractListDetailFragment
এrequireSlidingPaneLayout()
এবংrequireDetailPaneNavHostFragment()
পদ্ধতির নাম পরিবর্তন করে যথাক্রমেgetSlidingPaneLayout()
এবংgetDetailPaneNavHostFragment()
করা হয়েছে। ( I34a08 )
আচরণ পরিবর্তন
- অ্যানিমেশনের সাথে নেভিগেট করার সময় (যেমন
Crossfade
), নতুন গন্তব্যেরLifecycle
এখন শুধুমাত্র অ্যানিমেশন সম্পূর্ণ হলেইRESUMED
পৌঁছাবে৷ ( if0543 , b/172112072 , b/194301889 ) - ন্যাভিগেশন কম্পোজের
NavHost
এখন গ্রাফটিকে প্রথম রচনার অংশ হিসেবে সেট করে। ( Ieb7be )
বাগ ফিক্স
- একটি নেভিগেশন গ্রাফের শেষ গন্তব্য পপিং আর একটি
ClassCastException
নিক্ষেপ করে না। ( if0543 , b/172112072 , b/194301889 ) - একটি
NullPointerException
স্থির করা হয়েছে যাUri
ছাড়া একটি গভীর লিঙ্ক যোগ করার সময় এবং একটি রুট বা গভীর লিঙ্কের মাধ্যমে নেভিগেট করার সময় ঘটবে৷ ( 938a0c , b/193805425 ) - নেভিগেশন কম্পোজে একটি সমস্যা সমাধান করা হয়েছে যেখানে একটি গভীর লিঙ্কযুক্ত
NavBackStackEntry
RESUMED
অবস্থায় পৌঁছাবে না। ( I192c5 ) - একটি সমস্যা সমাধান করা হয়েছে যেখানে একটি ডায়ালগ গন্তব্য পপ করার ফলে NavController-এর সিস্টেম ব্যাক বোতাম হ্যান্ডলিং আপডেট হবে না, সম্ভাব্যভাবে NavController ব্যাক বোতামটিকে আটকাতে পারে যদিও এতে পপ করার জন্য কোনও ব্যাক স্ট্যাক নেই৷ ( aosp/1782668 )
সংস্করণ 2.4.0-alpha05
জুলাই 21, 2021
androidx.navigation:navigation-*:2.4.0-alpha05
প্রকাশিত হয়েছে। সংস্করণ 2.4.0-alpha05 এই কমিট ধারণ করে।
আচরণ পরিবর্তন
- ন্যাভিগেশন কম্পোজের
NavHost
এখন গন্তব্যে নেভিগেট করার সময় সর্বদা ক্রসফেড ব্যবহার করে। ( I07049 , b/172112072 ) - আপনি এখন একটি NavHost এর গ্রাফে পরিবর্তন করতে পারেন। গ্রাফে একই সূচনা গন্তব্য এবং গন্তব্যের গ্রাফগুলিকে সমান হিসাবে বিবেচনা করা হবে এবং
NavController
ব্যাক স্ট্যাকটি সাফ করবে না। ( I0b8db , b/175392262 )
বাগ ফিক্স
-
NavBackStackEntry
এর সাথে সংযুক্ত একটিLifecycleObserver
মধ্যে থেকেpopBackStack()
কল করার সময় একটিNoSuchElementException
সংশোধন করা হয়েছে যা NavController-এর রাজ্যে পুনঃপ্রবেশকারী আপডেটগুলির কারণে সৃষ্ট। ( I64621 ) -
AbstractListDetailFragment
যখনAbstractListDetailFragment
ব্যবহার করা হয় না তখন আপনার APK থেকেSlidingPaneLayout
সম্পূর্ণভাবে ছিনিয়ে নেওয়ার অনুমতি দেয়। ( I611ad ) -
NavGraph
এবংNavDestination
এখন সমান পদ্ধতিকে ওভাররাইড করে তাই একই মান সহ দুটি বস্তু সমান বলে বিবেচিত হবে। ( I166eb , b/175392262 )
সংস্করণ 2.4.0-alpha04
জুলাই 1, 2021
androidx.navigation:navigation-*:2.4.0-alpha04
প্রকাশিত হয়েছে। সংস্করণ 2.4.0-alpha04 এই কমিট ধারণ করে।
নতুন বৈশিষ্ট
-
navigation-fragment
আর্টিফ্যাক্টে এখন নতুনAbstractListDetailFragment
এর মাধ্যমে একটি দুটি ফলক বিন্যাসের একটি পূর্বনির্মাণ বাস্তবায়ন রয়েছে। এই খণ্ডটি একটি তালিকা ফলক (যা আপনার সাবক্লাস প্রদান করে) এবং একটি বিস্তারিত ফলক পরিচালনা করতে একটিSlidingPaneLayout
ব্যবহার করে, যা একটিNavHostFragment
এর বাস্তবায়ন হিসাবে ব্যবহার করে, যেমনটি আমাদের উদাহরণ বাস্তবায়নে দেখা যায়। ( Iac4be , b/191276636 ) -
navigation-compose
আর্টিফ্যাক্টেরNavHost
এখনcomposable
গন্তব্য ছাড়াওdialog
গন্তব্য সমর্থন করে। এই ডায়ালগ গন্তব্যগুলি বর্তমানcomposable
গন্তব্যের উপরে ভাসমান একটি কম্পোজেবলDialog
মধ্যে দেখানো হবে। ( I011d0 )
val navController = rememberNavController()
Scaffold { innerPadding ->
NavHost(navController, "home", Modifier.padding(innerPadding)) {
composable("home") {
// This content fills the area provided to the NavHost
HomeScreen()
}
dialog("detail_dialog") {
// This content will be automatically added to a Dialog() composable
// and appear above the HomeScreen or other composable destinations
DetailDialogContent()
}
}
}
এপিআই পরিবর্তন
-
NavigatorState
এadd
ফাংশনটির নামpush
করা হয়েছে।add()
জন্য সমস্ত বর্তমান কলগুলিকে পুশ() এ পরিবর্তন করতে হবে। ( IE89fc , b/172112072 ) - কাস্টম
Navigator
দৃষ্টান্তগুলি এখন একটি গন্তব্যকে অ্যাসিঙ্ক্রোনাসভাবে পুশ বা পপ করতেNavigatorState
এpushWithTransaction
এবংpopWithTransition
API ব্যবহার করতে পারে। মনে রাখবেন যে এই APIগুলি এখনও অন্তর্ভুক্ত ন্যাভিগেটরদের দ্বারা ব্যবহৃত হয় না৷ ( Ic4d7c , b/172112072 )
আচরণ পরিবর্তন
-
NavDeepLinkBuilder
এখনcreatePendingIntent()
দ্বারা প্রত্যাবর্তিতPendingIntent
এPendingIntent.FLAG_IMMUTABLE
যোগ করে, নিশ্চিত করে যে এই APIটি Android 12 টার্গেট করার সময় প্রত্যাশিতভাবে কাজ করে। ( if8c52 )
বাগ ফিক্স
-
<include-dynamic>
এর সাথে একটি সমস্যা সমাধান করা হয়েছে যেখানে গ্রাফে পাস করা আর্গুমেন্টগুলি গতিশীলভাবে অন্তর্ভুক্ত গ্রাফে সঠিকভাবে পাস করা হবে না। ( I3e115 ) -
@null
এর একটি ডিফল্ট মান সহ একটিstring[]
আর্গুমেন্ট ব্যবহার করে একটি গন্তব্যে নেভিগেট করার সময় একটিNullPointerException
স্থির করা হয়েছে। ( I1fbe8 ) -
@Navigator.Name
এর জন্য ProGuard নিয়ম যোগ করুন, R8 3.1 ফুল মোড ব্যবহার করার সময় সমস্যার সমাধান করুন। ( I2add9 , b/191654433 ) -
1.5.0
এর আগেKotlin
সংস্করণের সাথে আপনার অ্যাপ তৈরি করার সময় SafeArgs আর ব্যর্থ হবে না। ( Icd1ff , b/190739257 )
সংস্করণ 2.4.0-alpha03
16 জুন, 2021
androidx.navigation:navigation-*:2.4.0-alpha03
প্রকাশিত হয়েছে। সংস্করণ 2.4.0-alpha03 এই কমিট ধারণ করে।
বাগ ফিক্স
- একটি সমস্যা সমাধান করা হয়েছে যেখানে একটি অন্তর্ভুক্ত ডায়নামিক গ্রাফে নেভিগেট করার জন্য দুটি
navigate()
কলের প্রয়োজন ছিল৷ ( I7785c , b/188859835 ) - নেভিগেশন
2.4.0-alpha01
এ প্রবর্তিত একটি রিগ্রেশন স্থির করা হয়েছে যেখানেsetupActionBarWithNavController()
সঠিকভাবে Up আইকনটি অপসারণ করবে না যখন আপনি একটি শীর্ষ স্তরের গন্তব্যে থাকবেন। ( I5d443 , b/189868637 ) - পূর্বে NavController এর রুট গ্রাফ পপ করার পরে
popBackStack()
কল করার সময় একটিIllegalStateException
সংশোধন করা হয়েছে। ( I2a330 , b/190265699 ) -
by navArgs()
এর জন্য ProGuard নিয়মগুলি এখন সঠিকভাবে প্রযোজ্য যখনnavigation-common
বা এটির উপর নির্ভরশীল যেকোন শিল্পকর্ম ব্যবহার করে। ( I68800 , b/190082521 ) - একটি
OnDestinationChangedListener
যেটি প্রথমবার কলব্যাক করার সময়navigate()
কল করে এখন সঠিকভাবে একটি দ্বিতীয় কলব্যাক পাবে যেখানে এটি নেভিগেট করেছে। ( Ie5f9e , b/190228815 ) - গতিশীল বৈশিষ্ট্য মডিউল এবং AGP 7.0+ এর সাথে ব্যবহার করার সময় নিরাপদ Args আর ক্র্যাশ হয় না। ( I69518 , b/189966576 )
পরিচিত সমস্যা
- একটি পুরানো সংস্করণের উপর নির্ভরতার কারণে Gradle
6.7.0
ব্যবহার করার সময়Unable to find method ''java.lang.String kotlin.text.CarsKt.titleCase(char, java.util.Locale)''
সাথে Safe Args ব্যর্থ হবে কোটলিনের। Gradle 7.0 ব্যবহার করার জন্য আপডেট করে এটি প্রায় কাজ করা যেতে পারে। ( b/190739257 )
সংস্করণ 2.4.0-alpha02
2 জুন, 2021
androidx.navigation:navigation-*:2.4.0-alpha02
প্রকাশিত হয়েছে। সংস্করণ 2.4.0-alpha02 এই কমিট ধারণ করে।
নতুন বৈশিষ্ট
- রুটগুলি এখন অ্যাক্টিভিটি, ফ্র্যাগমেন্ট এবং ডায়ালগ গন্তব্যগুলির পাশাপাশি ডায়নামিক নেভিগেশন কোটলিন ডিএসএল জুড়ে সমর্থিত। ( Ib5544 , Ia617b , I22f96 , b/188914648 , b/188901565 )
-
NavigationUI
অস্থায়ীভাবে পরীক্ষামূলক API যোগ করেছে যাতে আপনার রাজ্য সংরক্ষণ করা অপ্ট আউট করা যায়৷ সর্বদা রাষ্ট্র সংরক্ষণ করা সঠিক আচরণ হলেও, এখনও অবচয়িত লাইব্রেরিগুলির ব্যবহার রয়েছে (অর্থাৎ ধরে রাখা টুকরো), যা রাজ্য সংরক্ষণ করার সময় সমর্থন করা যায় না তাই এটি অ্যাপগুলিকে যে কোনও অসমর্থিত API থেকে ধীরে ধীরে রূপান্তর করার সুযোগ দেয়। ( আইডিএফ৯৩সি ) নেভিগেশন এখন
findDestination()
এবংgetHierarchy()
API প্রদান করে যা কাস্টম নেভিগেশনইউআই বাস্তবায়নে সাহায্য করতে ব্যবহার করা যেতে পারে।findDestination()
হলNavGraph
এ একটি এক্সটেনশন ফাংশন যা গ্রাফের মধ্যে একটি গন্তব্য সনাক্ত করবে।getHierarchy()
হলNavDestination
এর একটি ফাংশন যা একটি প্রদত্ত গন্তব্য অন্যটির অনুক্রমের মধ্যে আছে কিনা তা যাচাই করতে ব্যবহার করা যেতে পারে।( I2932f , b/188183365 )val matchingRoute: Boolean = destination.hierarchy.any { it.route == routeToFind }
ন্যাভিগেশনইউআই মেথড যা
BottomNavigationView
গ্রহণ করেছে তার পরিবর্তে মেটেরিয়াল1.4.0
,NavigationBarView
এ চালু করা সুপারক্লাস নিতে আপডেট করা হয়েছে। এটি এই পদ্ধতিগুলিকেNavigationRailView
এর সাথে ব্যবহার করার অনুমতি দেয়। ( Ib0b36 , b/182938895 )XML-এর মাধ্যমে একটি
<action>
উপাদান ফুলিয়ে দেওয়ার সময়, অ্যানিমেশন অ্যাট্রিবিউটগুলিapp:enterAnim="?attr/transitionEnter"
সিনট্যাক্স ব্যবহার করে আপনার থিম থেকে টানা বৈশিষ্ট্যগুলি ব্যবহার করতে পারে। ( I07bc1 , b/178291654 )
এপিআই পরিবর্তন
- কোটলিন ডিএসএল বিল্ডার যারা একটি আইডি ব্যবহার করে তাদের অবমূল্যায়ন করা হয়েছে এবং রুট ব্যবহারকারী বিল্ডারদের সাথে প্রতিস্থাপন করা উচিত ( I85b42 , b/188816479 ) ( I9f58f , b/188816479 )
বাগ ফিক্স
-
DialogFragmentNavigator
এখনNavigatorState.pop()
API ব্যবহার করে যখন একটিNavController
খারিজ হয়ে যায় তখন সিস্টেম ব্যাক বোতামে আঘাত করে বা এর বাইরে ক্লিক করে, নিশ্চিত করে যেNavController
অবস্থা সর্বদা ন্যাভিগেটরের অবস্থার সাথে সুসংগত হয়। ( I2ead9 ) একটি
onDestinationChanged
কলব্যাকের মাধ্যমেOnDestinationChangedListeners
এর তালিকা ম্যানিপুলেট করার সময় নেভিগেশন আর একটিConcurrentModificationException
দেয় না। ( Ib1707 , b/188860458 )কোটলিনে দিকনির্দেশনা বৈশিষ্ট্য তৈরি করার চেষ্টা করার সময় নিরাপদ আর্গস আর ক্র্যাশ হয় না। ( Id2416 , b/188564435 )
NavDestination-এ সেটআইডি পদ্ধতিটি এখন সঠিকভাবে
@IdRes
এর সাথে টীকা করা হয়েছে, তাই এটি শুধুমাত্র রিসোর্স আইডি গ্রহণ করে। ( I69b80 )findNode
এর int প্যারামিটার এখনresid
এর পরিবর্তেresId
। ( I7711d )
নির্ভরতা আপডেট
- Safe-Args এখন Android Gradle Plugin 4.2.0 এর উপর নির্ভর করে। এর মানে হল আপনি আর
applicationIdTextResource
সতর্কতা ব্যবহার করবেন না। ( I6d67b , b/172824579 )
সংস্করণ 2.4.0-alpha01
18 মে, 2021
androidx.navigation:navigation-*:2.4.0-alpha01
প্রকাশিত হয়েছে। সংস্করণ 2.4.0-alpha01-এ এই কমিট রয়েছে।
নতুন বৈশিষ্ট
-
NavController
এcurrentBackStackEntryAsFlow()
পদ্ধতি একটিFlow
প্রদান করে যা বর্তমানNavBackStackEntry
পরিবর্তিত হলে নির্গত হয়। এই প্রবাহটি একটিOnDestinationChangedListener
ম্যানুয়ালি পরিচালনার বিকল্প হিসাবে ব্যবহার করা যেতে পারে। ( I19c4a , #89 , b/163947280 )
একাধিক ব্যাক স্ট্যাক
NavController গন্তব্যগুলির পিছনের স্ট্যাক পরিচালনার জন্য দায়ী, যখন আপনি তাদের navigate()
তখন পিছনের স্ট্যাকে গন্তব্যগুলি যোগ করে এবং আপনি যখন popBackStack()
কল করেন বা সিস্টেম ব্যাক বোতামটি ট্রিগার করেন তখন সেগুলি সরানোর জন্য। বিদ্যমান NavOptions
ক্লাস এবং নেভিগেশন গ্রাফ XML-এ <action>
এন্ট্রিগুলির একীকরণ ব্যাক স্ট্যাক সংরক্ষণ এবং পুনরুদ্ধার সমর্থন করার জন্য প্রসারিত করা হয়েছে। ( b/80029773 )
এই পরিবর্তনের অংশ হিসাবে, onNavDestinationSelected()
, BottomNavigationView.setupWithNavController()
এবং NavigationView.setupWithNavController()
এর NavigationUI
পদ্ধতিগুলি এখন স্বয়ংক্রিয়ভাবে পপ করা গন্তব্যগুলির অবস্থা সংরক্ষণ এবং পুনরুদ্ধার করে, কোনো কোড পরিবর্তন ছাড়াই একাধিক ব্যাক স্ট্যাকের জন্য সমর্থন সক্ষম করে৷ ফ্র্যাগমেন্টের সাথে নেভিগেশন ব্যবহার করার সময়, এটি একাধিক ব্যাক স্ট্যাকের সাথে একীভূত করার প্রস্তাবিত উপায়। ( Ie07ca )
রাজ্য সংরক্ষণ এবং পুনরুদ্ধার করার জন্য অন্তর্নিহিত APIগুলি বেশ কয়েকটি পৃষ্ঠের মাধ্যমে উন্মুক্ত করা হয়েছে:
নেভিগেশন XML-এ,
<action>
উপাদানটি এখনapp:popUpToSaveState
এবংapp:restoreState
এর বুলিয়ান অ্যাট্রিবিউট ব্যবহার করতে পারেapp:popUpTo
এর মাধ্যমে পপ করা যেকোন গন্তব্যের অবস্থা সংরক্ষণ করতে এবংapp:destination
হিসেবে পাস করা গন্তব্যের সাথে সম্পর্কিত অবস্থা পুনরুদ্ধার করতে পারে।<action android:id=”@+id/swap_stack” app:destination=”@id/second_stack” app:restoreState=”true” app:popUpTo=”@id/first_stack_start_destination” app:popUpToSaveState=”true” />
navOptions
Kotlin DSL- এ, আপনিrestoreState
বুলিয়ান প্রপার্টি এবংsaveState
বুলিয়ান প্রপার্টিpopUpTo
বিল্ডারে যোগ করতে পারেন:// Use the navigate() method that takes a navOptions DSL Builder navController.navigate(selectedBottomNavRoute) { launchSingleTop = true restoreState = true popUpTo(navController.graph.startDestinationId) { saveState = true } }
NavOptions.Builder
এর মাধ্যমে ম্যানুয়ালি একটিNavOptions
অবজেক্ট তৈরি করতে, আপনিsetRestoreState()
এবংsetPopUpTo()
এ নতুন ওভারলোড ব্যবহার করতে পারেন যা একটি অতিরিক্তsaveState
প্যারামিটার নেয়।NavOptions navOptions = new NavOptions.Builder() .setLaunchSingleTop(true) .setRestoreState(true) .setPopUpTo(navController.getGraph().getStartDestinationId(), false, // inclusive true) // saveState .build(); navController.navigate(selectedBottomNavId, null, navOptions);
popBackStack()
এ প্রোগ্রাম্যাটিক কল এখন একটি অতিরিক্তsaveState
প্যারামিটার অন্তর্ভুক্ত করতে পারে।
সমস্ত ক্ষেত্রে, NavController
প্রতিটি NavBackStackEntry
এর অবস্থা সংরক্ষণ করবে এবং পুনরুদ্ধার করবে, যেকোন নেভিগেশন গন্তব্য স্কোপড ViewModel
উদাহরণ সহ। প্রতিটি Navigator
তাদের নিজস্ব অবস্থা সংরক্ষণ এবং পুনরুদ্ধার করতে সহায়তা করার জন্য Navigator
APIগুলি আপডেট করা হয়েছে।
ন্যাভিগেশন কম্পোজে composable
গন্তব্যগুলির জন্য ব্যবহৃত ComposeNavigator
এবং FragmentNavigator
এবং DynamicFragmentNavigator
উভয়ই নতুন ন্যাভিগেটর API ব্যবহার করতে এবং সংরক্ষণ ও পুনরুদ্ধারের অবস্থা সমর্থন করার জন্য আপডেট <fragment>
হয়েছে।
নেভিগেশন রুট
একটি রুট হল একটি String
যা অনন্যভাবে একটি গন্তব্য চিহ্নিত করে। যদিও পূর্বে শুধুমাত্র ন্যাভিগেশন কম্পোজে ব্যবহৃত হত, এই ধারণাটি এখন মূল নেভিগেশন API-এর একটি অংশ হয়ে উঠেছে। ন্যাভিগেশন Kotlin DSL এর মাধ্যমে আপনার গ্রাফ তৈরি করার সময় এটি পূর্ণসংখ্যা আইডি ব্যবহার করার একটি বিকল্প প্রদান করে। ( b/172823546 )
সমস্ত API যেগুলি শুধুমাত্র একটি আইডি গ্রহণ করত এখন একটি ওভারলোড রয়েছে যা একটি রুট String
নেয়। এর মধ্যে navigate()
, popBackStack()
, popUpTo()
এবং getBackStackEntry()
অন্তর্ভুক্ত রয়েছে।
এর কিছু API প্রভাব রয়েছে:
- Kotlin DSL-এ
popUpTo
kotlin সম্পত্তিpopUpToId
এর পক্ষে অবমূল্যায়ন করা হয়েছে। ( I59c73 , b/172823546 ) -
getStartDestination()
API-কেgetStartDestinationId()
এর পক্ষে বাতিল করা হয়েছে। ( I0887f , b/172823546 )
ডেভেলপারদের জন্য নেভিগেশন কম্পোজের পূর্ববর্তী সংস্করণ থেকে নেভিগেশন কম্পোজ 2.4.0-alpha01
তে আপগ্রেড করার জন্য, এর মানে হল যে এক্সটেনশন পদ্ধতিতে নিম্নলিখিত আমদানিগুলি আর প্রয়োজন নেই এবং সরানো উচিত:
import androidx.navigation.compose.navigation
import androidx.navigation.compose.createGraph
import androidx.navigation.compose.getBackStackEntry
import androidx.navigation.compose.navigate
import androidx.navigation.compose.popUpTo
KEY_ROUTE
আর্গুমেন্টটি NavDestination
এ route
প্রপার্টি দিয়ে প্রতিস্থাপিত হয়েছে, যা আপনাকে সরাসরি navBackStackEntry.destination.route
এ কল করতে দেয়।
এপিআই পরিবর্তন
- সমস্ত নেভিগেশন শিল্পকর্ম কোটলিনে পুনরায় লেখা হয়েছে। এটি জেনেরিক (যেমন
NavType
সাবক্লাস) ব্যবহার করে ক্লাসের শূন্যতা উন্নত করেছে। সমস্ত Kotlin এক্সটেনশন ফাংশন যা-ktx
আর্টিফ্যাক্টের অংশ ছিল তাদের নিজ নিজ প্রধান শিল্পকর্মে স্থানান্তরিত করা হয়েছে।-ktx
আর্টিফ্যাক্টগুলি প্রকাশিত হতে থাকবে, কিন্তু সম্পূর্ণ খালি। ( b/184292145 ) -
NavDeepLinkBuilder
এখন জেনারেট করা ব্যাক স্ট্যাকে একাধিক স্বতন্ত্র গন্তব্য যোগ করা সমর্থন করে। ( I3ee0d , b/147913689 ) -
DynamicNavHostFragment
( Icd515 , b/175222619 ) এর জন্য ফ্যাক্টরি ফাংশন যোগ করুন - একটি
NavBackStackEntry
এর অনন্য ID এখন তার সর্বজনীন API-এর অংশ হিসাবে উন্মুক্ত করা হয়েছে। ( IE033a ) -
NamedNavArgument
এরname
এবংargument
ক্ষেত্র এবং ধ্বংস করার ফাংশন এখন সর্বজনীন। ( #174 , b/181320559 ) - একটি নতুন
NavBackStackEntry#provideToCompositionLocals
এক্সটেনশন প্রবর্তন করেছে যা প্রাসঙ্গিক রচনা স্থানীয়দেরNavBackStackEntry
প্রদান করে। ( #175 , b/187229439 )
নিরাপদ Args
সেফ আর্গস এখন প্রতিটি
NavArgs
ক্লাসের জন্য একটিfromSavedStateHandle()
পদ্ধতি তৈরি করে। ( #122 , b/136967621 )class HomeViewModel(savedStateHandle: SavedStateHandle) : ViewModel() { // Create a HomeDestinationArgs class with type safe accessors for each argument // defined on your destination private val args = HomeDestinationArgs.fromSavedStateHandle(savedStateHandle) }
KotlinPoet
1.8.0
এর উপর নির্ভর করার জন্য সেফ আর্গস আপডেট করা হয়েছে। ( #172 , b/183990444 )
আচরণ পরিবর্তন
- নেভিগেশন এখন লাইফসাইকেল
2.3.1
এর উপর নির্ভর করে এবং এখনsetGraph()
,popBackStack()
,navigateUp()
, এবংnavigate()
চিহ্নিত করে, যে পদ্ধতিগুলিNavBackStackEntry
Lifecycle
আপডেট করে,@MainThread
হিসাবে, লাইফসাইকেলে প্রধান থ্রেডের সাথে নেভিগেশন সারিবদ্ধ করে2.3.0
( b/171125856 ) - ডিপ লিঙ্ক থেকে Enum আর্গুমেন্ট পার্স করা এখন কেস ইনসেনসিটিভ,
http://www.example.com/red
এর মতো ডিপ লিঙ্ককেwww.example.com/{color}
ডিপ লিঙ্কের সাথে মেলে এমনকী যখন enum-এর মানRED
এর মান থাকে . ( #152 , b/135857840 )
রচনা সামঞ্জস্যতা
-
androidx.navigation:navigation-compose:2.4.0-alpha01
শুধুমাত্র কম্পোজ ভার্সন1.0.0-beta07
এবং তার বেশির সাথে সামঞ্জস্যপূর্ণ।
বাগ ফিক্স
- একটি সমস্যা সমাধান করা হয়েছে যেখানে ট্রেলিং আর্গুমেন্ট প্লেসহোল্ডাররা ডিপ লিঙ্কগুলির উপর অগ্রাধিকার নেবে যেগুলির সাথে মিলে যাওয়া সঠিক প্রত্যয় রয়েছে৷ ( #153 , b/184072811 )
-
NavHostFragment
এখন কাস্টম নেভিগেটর সমর্থন করে যেগুলি একই@Navigator.Name("dialog")
ডিফল্টDialogFragmentNavigator
হিসাবে ব্যবহার করে। ( Ib1c2c , b/175979140 ) -
NavigatorProvider#addNavigator
এর আচরণ উন্নত করা হয়েছে যাতে একই উদাহরণে বারবার কল করলে সমস্যা না হয়। ( #176 , b/187443146 )
বাহ্যিক অবদান
- প্রতিটি
NavArgs
ক্লাসের জন্য একটিfromSavedStateHandle()
পদ্ধতি তৈরি করে Safe Args-এর জন্য সমর্থন তৈরি করার জন্য ধন্যবাদ simonschiller । ( #122 , b/136967621 ) - ধন্যবাদ ব্র্যাডলিকর্ন ডিপ লিংক থেকে Enum আর্গুমেন্ট পার্সিং কেস ইনসেনসিটিভ করার জন্য। ( #152 , b/135857840 )
- ধন্যবাদ osipxd একটি সমস্যা সমাধান করার জন্য যেখানে ট্রেলিং আর্গুমেন্ট প্লেসহোল্ডাররা গভীর লিঙ্কগুলির উপর প্রাধান্য পাবে যেগুলির সাথে মিলিত সঠিক প্রত্যয় রয়েছে৷ ( #153 , b/184072811 )
- KotlinPoet
1.8.0
এর উপর নির্ভর করার জন্য Safe Args আপডেট করার জন্য tatocaster কে ধন্যবাদ। ( #172 , b/183990444 ) -
name
এবংargument
ক্ষেত্র এবংNamedNavArgument
এর কার্যাবলী ধ্বংস করার জন্য jossiwolf কে ধন্যবাদ। ( #174 , b/181320559 ) - ধন্যবাদ jossiwolf একটি নতুন
NavBackStackEntry#provideToCompositionLocals
এক্সটেনশন প্রবর্তনের জন্য যা প্রাসঙ্গিক রচনা স্থানীয়দেরNavBackStackEntry
প্রদান করে। ( #175 , b/187229439 ) -
NavigatorProvider#addNavigator
এর আচরণ উন্নত করার জন্য jossiwolf কে ধন্যবাদ যাতে একই উদাহরণে বারবার কল করলে সমস্যা না হয়। ( #176 , b/187443146 )
নেভিগেশন রচনা সংস্করণ 1.0.0
সংস্করণ 1.0.0-আলফা10
7 এপ্রিল, 2021
androidx.navigation:navigation-compose:1.0.0-alpha10
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha10 এই কমিট ধারণ করে।
এপিআই পরিবর্তন
-
NavHost
এখন একটিModifier
গ্রহণ করে, যা কম্পোজেবল কন্টেইনারে পাঠানো হয় যা গন্তব্য কম্পোজেবলগুলিকে মোড়ানো হয়। ( I85aca , b/175125483 )
বাগ ফিক্স
-
NavHost
এখন কাজ করে এমনকি যখন একজনOnBackPressedDispatcherOwner
খুঁজে পাওয়া যায় না,NavHost
এর পূর্বরূপ দেখার সময় এমনটি হয়। ( I7d8b4 ) - নেভিগেশন রচনা এখন নেভিগেশন
2.3.5
এর উপর নির্ভর করে, একটিNavHost
গন্তব্যের মধ্যেBackHandler
ব্যবহার করার সময় একটি সমস্যা সমাধান করা। ( I7e63b , b/182284739 )
সংস্করণ 1.0.0-alpha09
10 মার্চ, 2021
androidx.navigation:navigation-compose:1.0.0-alpha09
প্রকাশিত হয়েছে। 1.0.0-alpha09 সংস্করণে এই কমিট রয়েছে।
এপিআই পরিবর্তন
-
LocalViewModelStoreOwner.current
বর্তমান রচনায় একটিViewModelStoreOwner
উপলব্ধ কিনা তা আরও ভালভাবে নির্ধারণ করতে একটি বাতিলযোগ্যViewModelStoreOwner
প্রদান করে৷ যে APIগুলির জন্য একটিViewModelStoreOwner
প্রয়োজন, যেমনviewModel()
এবংNavHost
, যদি একটিViewModelStoreOwner
সেট না করা থাকে তাহলেও একটি ব্যতিক্রম ছুঁড়ে দেয়৷ ( আইডিএফ৩৯এ )
বাগ ফিক্স
- ন্যাভিগেশন রচনা এখন নেভিগেশন 2.3.4 এর উপর নির্ভর করে যার মধ্যে গ্রাফ সেট করার পরে একই ViewModelStore অবজেক্ট সেট করার চেষ্টা করার জন্য ফিক্স অন্তর্ভুক্ত রয়েছে। ( I65c24 , b/177825470 )
সংস্করণ 1.0.0-alpha08
24 ফেব্রুয়ারি, 2021
androidx.navigation:navigation-compose:1.0.0-alpha08
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha08 এই কমিট ধারণ করে।
নতুন বৈশিষ্ট
-
NavHost
এখন সেই গন্তব্যেরNavBackStackEntry
এর সাথেLocalSavedStateRegistryOwner
CompositionLocal কে পপুলেট করে, নিশ্চিত করে যেSavedStateRegistry
এ সরাসরি সংরক্ষিত যেকোনও স্টেট গন্তব্যের সাথে সংরক্ষিত এবং পুনরুদ্ধার করা হবে। ( I435d7 , b/179469431 )
সংস্করণ 1.0.0-alpha07
ফেব্রুয়ারী 10, 2021
androidx.navigation:navigation-compose:1.0.0-alpha07
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha07 এই কমিট ধারণ করে।
নির্ভরতা আপডেট
- ন্যাভিগেশন কম্পোজ এখন লাইফসাইকেল ভিউমডেল কম্পোজ 1.0.0-আলফা01- এর উপর নির্ভর করে যাতে
composable
গন্তব্যগুলিতেviewModel()
সমর্থন দেওয়া যায়। ( I7a374 ) -
NavHost
এখনNavController
এ সেট করাOnBackPressedDispatcher
পেতে Activity-Compose 1.3.0-alpha01 থেকে নতুনLocalOnBackPressedDispatcherOwner
ব্যবহার করে। ( I65b12 )
সংস্করণ 1.0.0-alpha06
28 জানুয়ারী, 2021
androidx.navigation:navigation-compose:1.0.0-alpha06
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha06 এই কমিট ধারণ করে।
এপিআই পরিবর্তন
-
NavController
এ একটিgetBackStackEntry(route: String)
এক্সটেনশন পদ্ধতি যোগ করা হয়েছে যা সংশ্লিষ্টNavBackStackEntry
ফেরত দেয়। ( if8931 )
সংস্করণ 1.0.0-alpha05
13 জানুয়ারী, 2021
androidx.navigation:navigation-compose:1.0.0-alpha05
প্রকাশিত হয়েছে। 1.0.0-alpha05 সংস্করণে এই কমিট রয়েছে।
কম্পোজ 1.0.0-আলফা10 এর উপর নির্ভর করে আপডেট করা হয়েছে।
সংস্করণ 1.0.0-alpha04
16 ডিসেম্বর, 2020
androidx.navigation:navigation-compose:1.0.0-alpha04
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha04 এই কমিট ধারণ করে।
- কম্পোজ
1.0.0-alpha09
এর সাথে সামঞ্জস্যের জন্য আপডেট করা হয়েছে।
সংস্করণ 1.0.0-alpha03
2 ডিসেম্বর, 2020
androidx.navigation:navigation-compose:1.0.0-alpha03
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha03 এই কমিট ধারণ করে।
বাগ ফিক্স
- একটি সমস্যা সমাধান করা হয়েছে যেখানে
popBackStack()
এবংnavigateUp()
কনফিগারেশন পরিবর্তনের পরে কাজ করবে না বা মৃত্যু এবং বিনোদন প্রক্রিয়া করবে। ( Icea47 , b/173281473 ) - আপনার NavHost-এর মধ্যে একটি নেস্টেড গ্রাফে নেভিগেট করা এখন সঠিকভাবে কাজ করে। ( I0948d , b/173647694 )
সংস্করণ 1.0.0-alpha02
11 নভেম্বর, 2020
androidx.navigation:navigation-compose:1.0.0-alpha02
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha02 এই কমিট ধারণ করে।
এপিআই পরিবর্তন
- ন্যাভিগেশন কম্পোজ এখন PopUpTo ব্যবহার করার জন্য NavOptions সমর্থন করে এবং SingleTop অপারেশন চালু করে ( If96c3 , b/171468994 )
- একটি নেভিগেশন ফাংশন যোগ করা হয়েছে যা একটি আইডির পরিবর্তে একটি রুট নেয় যা আপনাকে নেভিগেশন কম্পোজ ডিএসএল-এ নেস্টেড গ্রাফ তৈরি করতে দেয়। ( I1661d )
- startDestination এখন একটি NavHost ( Ie620e ) এর প্যারামিটারের তালিকায় রুটের আগে আসে
- আপনি এখন একটি NavHost কম্পোজেবলের বাইরে একটি স্টার্ট গন্তব্য হিসাবে রুট ব্যবহার করে একটি গ্রাফ তৈরি করতে পারেন। ( Iceb75 )
সংস্করণ 1.0.0-alpha01
অক্টোবর 28, 2020
android.navigation:navigation-compose:1.0.0-alpha01
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha01-এ এই কমিট রয়েছে।
নতুন বৈশিষ্ট
navigation-compose
আর্টিফ্যাক্ট নেভিগেশন কম্পোনেন্ট এবং জেটপ্যাক কম্পোজের মধ্যে ইন্টিগ্রেশন প্রদান করে। এটি আপনার অ্যাপ্লিকেশনে গন্তব্য হিসাবে @Composable
ফাংশন ব্যবহার করে।
এই প্রাথমিক রিলিজ প্রদান করে:
- একটি
NavHost
কম্পোজযোগ্য যা আপনাকে Kotlin DSL এর মাধ্যমে আপনার নেভিগেশন গ্রাফ তৈরি করতে দেয়। - জীবনচক্রের স্কোপিং,
ViewModel
এবং গন্তব্য স্তরে মনে রাখা অবস্থা। - সিস্টেম ব্যাক বোতামের সাথে স্বয়ংক্রিয় ইন্টিগ্রেশন।
- আর্গুমেন্ট পাস করার জন্য সমর্থন, গন্তব্যে গভীর লিঙ্ক সংযুক্ত করা, এবং পূর্ববর্তী গন্তব্যে একটি ফলাফল ফেরত.
-
rememberNavController()
এবংcurrentBackStackEntryAsState()
এ নির্দিষ্ট সহায়ক রচনা করুন যাতে উত্তোলন অবস্থার অনুমতি দেওয়া যায় এবংNavHost
এর বাইরে কম্পোজেবলের সাথেNavController
কে সংযুক্ত করা যায় (যেমন নীচের নেভিগেশন বার)।
আরও তথ্যের জন্য রচনা ন্যাভিগেশন গাইড দেখুন।
সংস্করণ 2.3.5
সংস্করণ 2.3.5
7 এপ্রিল, 2021
androidx.navigation:navigation-*:2.3.5
প্রকাশিত হয়েছে। সংস্করণ 2.3.5 এই কমিট ধারণ করে.
নতুন বৈশিষ্ট
- একটি
NavDeepLinkRequest
বাUri
ব্যবহার করে নেভিগেট করার সময়, আপনি এখনKEY_DEEP_LINK_INTENT
এর মাধ্যমে আর্গুমেন্ট থেকে অভিপ্রায় পেয়ে ফলাফলের গন্তব্যেUri
, অ্যাকশন এবং মাইম টাইপ অ্যাক্সেস করতে পারেন, বাহ্যিক গভীর লিঙ্কিংয়ের জন্য ইতিমধ্যে উপলব্ধ কার্যকারিতা মিরর করে৷ ( I975c3 , b/181521877 )
বাগ ফিক্স
-
OnBackPressedCallbacks
NavBackStackEntry
এর সাথে একটি ডিসপ্যাচারে যোগ করা হয়েছে লাইফসাইকেল-ওনার হিসাবে এখন অ্যাক্টিভিটি লাইফসাইকেলSTOPPED
পরে সঠিকভাবে ইন্টারসেপ্ট করে, তারপরSTARTED
( Iff94f , b/182284739 ) - ডিপ লিঙ্ক ডোমেন পার্সিং এখন কেস সংবেদনশীল, নিশ্চিত করে যে
www.example.com
www.example.com
এবংwww.Example.com
উভয়ের সাথে মিলে যায়। মনে রাখবেন যে ক্যোয়ারী প্যারামিটারের নাম এখনও কেস সংবেদনশীল। ( #144 , b/153829033 ) - একটি
NullPointerException
স্থির করা হয়েছে যেটি ঘটতে পারে যখন একটি গন্তব্যে একাধিক অ-নূলযোগ্য ডিফল্ট আর্গুমেন্ট থাকে এবং আপনি সেই গন্তব্যে নেভিগেট করেন যখন শুধুমাত্র সেই আর্গুমেন্টগুলির একটি উপসেট ওভাররাইড করেন৷ ( aosp/1644827 )
নির্ভরতা আপডেট
- নেভিগেশন নিরাপদ Args Gradle প্লাগইন এখন Kotlin Gradle প্লাগইন 1.4.31 এর উপর নির্ভর করে। ( aosp/1661058 , b/181156413 )
বাহ্যিক অবদান
- গভীর লিঙ্ক ডোমেন পার্সিং কেস সংবেদনশীল করে তোলার অনুরোধের জন্য ধন্যবাদ
bentrengrove
. ( #144 , b/153829033 )
সংস্করণ 2.3.4
সংস্করণ 2.3.4
10 মার্চ, 2021
androidx.navigation:navigation-*:2.3.4
প্রকাশিত হয়েছে। সংস্করণ 2.3.4 এই কমিট ধারণ করে.
নতুন বৈশিষ্ট
-
ReferenceType
আর্গুমেন্টগুলি যখন ডিপলিংক ইউআরআই-এর অংশ হিসাবে পাঠানো হয় তখন সঠিকভাবে পার্স করা যায়। এটি কাঁচা পূর্ণসংখ্যার মান এবং0x
দ্বারা উপসর্গযুক্ত হেক্স মান উভয়কেই সমর্থন করে। ( #127 , b/179166693 ) -
app:argType="float"
এর সাথে একটি আর্গুমেন্টের জন্যandroid:defaultValue
এখন পূর্ণসংখ্যার ডিফল্ট মানগুলিকে সমর্থন করে, যা আপনাকে0.0
ব্যবহার করার পরিবর্তেandroid:defaultValue="0"
ব্যবহার করতে দেয়৷ ( #117 , b/173766247 )
বাগ ফিক্স
- গতিশীল বৈশিষ্ট্যের জন্য নেভিগেশন সমর্থন ব্যবহার করার সময় আটকে থাকা ইনস্টলেশন অগ্রগতি ঠিক করুন। ( Ib27a7 , b/169636207 )
-
setViewModelStore
বাsetLifecycleOwner
ইতিমধ্যে সেট করা একই বস্তুর সাথে কল করা এখন একটি নো-অপ হবে ( Idf491 , b/177825470 ) - সেফ-আর্গস এখন জাভা ব্যবহার করার সময় সঠিক পদ্ধতিতে সাপ্রেস টীকা যোগ করে। ( I8fbc5 , b/179463137 )
বাহ্যিক অবদান
- ডিপলিংক ইউআরআই-এর অংশ হিসাবে পাঠানো হলে
ReferenceType
আর্গুমেন্টগুলি এখন সঠিকভাবে পার্স করা যায় তা নিশ্চিত করার জন্য পুল অনুরোধের জন্যJvmName
ধন্যবাদ। ( #127 , b/179166693 ) - অ্যাপের সাথে একটি আর্গুমেন্টের জন্য
defaultValue
অনুমতি দেওয়ার জন্যtatocaster
ধন্যবাদapp:argType=”float”
এখন পূর্ণসংখ্যার ডিফল্ট মান সমর্থন করে। ( #117 , b/173766247 )
সংস্করণ 2.3.3
সংস্করণ 2.3.3
জানুয়ারী 27, 2021
androidx.navigation:navigation-*:2.3.3
প্রকাশিত হয়েছে। সংস্করণ 2.3.3 এই কমিট ধারণ করে.
বাগ ফিক্স
- একটি
NavBackStackEntry
এরLifecycle
CREATED
এ সরানোর আগে পপ করার সময় আর ক্র্যাশ হয় না। ( IE3ba3 ) - b/171364502 দ্বারা সৃষ্ট স্থির রিগ্রেশন যেখানে
0
এর একটি অ্যানিমেশন রিসোর্স মান সহ একটি কার্যকলাপে নেভিগেট করার ফলে একটিResourceNotFoundException
হয়েছে। ( I7aedb , b/176819931 )
সংস্করণ 2.3.2
সংস্করণ 2.3.2
2 ডিসেম্বর, 2020
androidx.navigation:navigation-*:2.3.2
প্রকাশিত হয়েছে। সংস্করণ 2.3.2 এই কমিট ধারণ করে.
বাগ ফিক্স
-
NavigationUI
-তে একটি রিগ্রেশন স্থির করা হয়েছে যেখানেonNavDestinationSelected
সাথে একটি<activity>
গন্তব্য ব্যবহার করলে কার্যকলাপে নেভিগেট করতে ব্যর্থ হবে। ( I22e34 , b/171364502 ) - একটি সমস্যা সমাধান করা হয়েছে যেখানে
navigation-dynamic-features-fragment
ফলে নতুন ইনস্টল করা গন্তব্যে একাধিকবার নেভিগেট হবে। ( aosp/1486056 , b/169636207 ) - একটি সমস্যা সমাধান করা হয়েছে যেখানে
launchSingleTop
ব্যবহার করার সময় ডিফল্ট আর্গুমেন্টগুলিOnDestinationChangedListener
ইনস্ট্যান্সে পাঠানো হবে না। ( I2c5cb ) - একটি সমস্যা সমাধান করা হয়েছে যেখানে নেস্টেড নেভিগেশন গ্রাফে নেভিগেট করা ব্যাক স্ট্যাকের উপর একটি নতুন গ্রাফ উদাহরণ তৈরি করবে না। ( IFc831 )
- একটি সমস্যা সমাধান করা হয়েছে যেখানে একটি
popUpTo
এর সাথেnavigate()
ব্যবহার করে যা একটি নেভিগেশন গ্রাফের শেষ গন্তব্যটি সরিয়ে দেয় তা অবিলম্বে নেভিগেশন গ্রাফটিকে পিছনের স্ট্যাক থেকে ধ্বংস করবে না এবং সরিয়ে দেবে না। ( I910a3 ) - নেভিগেশন SafeArgs এখন KotlinPoet সংস্করণ 1.7.2 ব্যবহার করে যা Kotlin এর স্পষ্ট API মোডের জন্য সমর্থন যোগ করে। ( I918b5 )
-
NavHostFragment.findNavController(Fragment)
এখন ফ্র্যাগমেন্ট হায়ারার্কি এবং ফ্র্যাগমেন্টের ভিউ হায়ারার্কির বিদ্যমান চেকগুলি ছাড়াও একটি ডায়ালগফ্র্যাগমেন্টের রুট ডেকোর ভিউ পরীক্ষা করে। এটি আপনাকেFragmentScenario
এবংNavigation.setViewNavController()
এর সাথে নেভিগেশন ব্যবহার করে এমন ডায়ালগ টুকরো পরীক্ষা করতে দেয়। ( I69e0d )
সংস্করণ 2.3.1
সংস্করণ 2.3.1
অক্টোবর 14, 2020
androidx.navigation:navigation-*:2.3.1
প্রকাশিত হয়েছে। সংস্করণ 2.3.1 এই কমিট ধারণ করে.
নতুন বৈশিষ্ট
- ডিফল্ট অ্যানিমেটর সংস্থানগুলি নেভিগেশন UI-তে যোগ করা হয়েছে এবং ডিফল্ট অ্যানিমেশন সংস্থানগুলির জন্য সুপারিশ করা হয়েছে৷ ( b/167430145 )
- NavOptions এখন হ্যাশকোড ওভাররাইড করে এবং পদ্ধতিগুলিকে সমান করে ( b/161586466 )
- নেভিগেশন এখন "আইডি সহ কোন গন্তব্য নেই" অবৈধ আর্গুমেন্ট এক্সেপশনে বর্তমান গন্তব্য অন্তর্ভুক্ত করে, যা ডেভেলপার ডিবাগিং অভিজ্ঞতা উন্নত করবে। ( b/168311416 )
বাগ ফিক্স
- সেফ আর্গস আর রিটার্ন লাইন র্যাপ করবে না, এমনকি জেনারেট করা আর্গুমেন্ট ক্লাসের নাম 100 অক্ষরের বেশি হলেও। ( b/168584987 )
নির্ভরতা পরিবর্তন
-
navigation-ui
এখন ড্রয়ার লেআউট 1.1.1 এর উপর নির্ভর করে, নিশ্চিত করে যেNavigationUI
LOCK_MODE_LOCKED_CLOSED
বাLOCK_MODE_LOCKED_OPEN
ব্যবহার করার সময়ও ড্রয়ার খুলতে সক্ষম। ( b/162253907 ) - নিরাপদ আর্গস এখন KotlinPoet 1.6.0 ( aosp/1435911 ) এর উপর নির্ভর করে
- নিরাপদ Args এখন AGP 4.0.1 ( aosp/1442337 ) এর উপর নির্ভর করে
সংস্করণ 2.3.0
সংস্করণ 2.3.0
জুন 24, 2020
androidx.navigation:navigation-*:2.3.0
প্রকাশিত হয়েছে। সংস্করণ 2.3.0 এই কমিট ধারণ করে.
2.2.0 থেকে প্রধান পরিবর্তন
- ফিচার মডিউল ইন্টিগ্রেশন :
navigation-dynamic-features-runtime
এবংnavigation-dynamic-features-fragment
আর্টিফ্যাক্টগুলি আপনাকে বৈশিষ্ট্য মডিউলগুলিতে সংজ্ঞায়িত গন্তব্যগুলিতে নেভিগেট করার অনুমতি দেয়, স্বয়ংক্রিয়ভাবে প্রয়োজন অনুসারে বৈশিষ্ট্য মডিউলগুলির ইনস্টলেশন পরিচালনা করে। আরও তথ্যের জন্য বৈশিষ্ট্য মডিউল সহ নেভিগেট দেখুন। - ন্যাভিগেশন টেস্টিং :
navigation-testing
আর্টিফ্যাক্ট একটিTestNavHostController
প্রদান করে যা আপনাকে বর্তমান গন্তব্য সেট করতে এবং নেভিগেশন অপারেশনের পরে ব্যাক স্ট্যাক যাচাই করতে দেয়। আরও তথ্যের জন্য পরীক্ষা নেভিগেশন দেখুন। - একটি ফলাফল ফিরিয়ে দেওয়া : নেভিগেশন ব্যাক স্ট্যাকের প্রতিটি গন্তব্যের সাথে যুক্ত
NavBackStackEntry
এখন আপনাকে একটিSavedStateHandle
অ্যাক্সেস করার অনুমতি দেয় যা একটি নির্দিষ্ট ব্যাক স্ট্যাক এন্ট্রির সাথে যুক্ত হওয়া উচিত অল্প পরিমাণে সংরক্ষিত অবস্থা সংরক্ষণ করার জন্য উপযুক্ত। আরও তথ্যের জন্য পূর্ববর্তী গন্তব্যে একটি ফলাফল প্রত্যাবর্তন দেখুন। -
Openable
জন্যNavigationUI
সমর্থন :NavigationUI
তেDrawerLayout
সমস্ত ব্যবহার কাস্টমভিউ1.1.0
-তে যুক্ত করা আরও সাধারণOpenable
ইন্টারফেসের সাথে প্রতিস্থাপিত হয়েছে এবং ড্রয়ারলেআউট1.1.0
-এDrawerLayout
দ্বারা প্রয়োগ করা হয়েছে। - ডিপ লিঙ্কগুলিতে অ্যাকশন এবং মাইম টাইপ সমর্থন :
app:uri
ছাড়াওapp:action
এবংapp:mimeType
সমর্থন করতে ডিপ লিঙ্কিং প্রসারিত করা হয়েছে।NavController
এখন নতুনNavDeepLinkRequest
ক্লাসের মাধ্যমে এই ক্ষেত্রগুলির যেকোন সংমিশ্রণে নেভিগেট করা সমর্থন করে। আরও তথ্যের জন্য NavDeepLinkRequest ব্যবহার করে নেভিগেট দেখুন।
জ্ঞাত সমস্যা
- ম্যানিফেস্ট মার্জারে ডিপ লিঙ্ক অ্যাকশন এবং মাইম প্রকারের জন্য সমর্থন এখনও উপলব্ধ নয়। এই কাজটি সম্পূর্ণ না হওয়া পর্যন্ত, আপনার ম্যানিফেস্টের
<nav-graph>
উপাদান থেকে যেকোনও জেনারেট করা<intent-filter>
উপাদানগুলি তার<data>
উপাদান বা আপনার কাস্টম<action>
এ আপনার মাইম প্রকার অন্তর্ভুক্ত করবে না। আপনার ম্যানিফেস্টে আপনাকে ম্যানুয়ালি একটি উপযুক্ত<intent-filter>
যোগ করতে হবে।
সংস্করণ 2.3.0-rc01
জুন 10, 2020
androidx.navigation:navigation-*:2.3.0-rc01
প্রকাশিত হয়েছে। সংস্করণ 2.3.0-rc01-এ এই কমিট রয়েছে।
বাগ ফিক্স
- একটি
NullPointerException
স্থির করা হয়েছে যখন কোনো আর্গুমেন্ট ছাড়া একটি গন্তব্যের একটি উদাহরণকেsingleTop
এর সাথে আর্গুমেন্টের সাথে অন্য উদাহরণের সাথে প্রতিস্থাপন করা হয়। ( b/158006669 ) -
NavController
দ্বারা নিক্ষিপ্ত সমস্তdestination is unknown
ব্যতিক্রম এখনNavController
এর অবস্থা নির্ধারণে সাহায্য করার জন্য অতিরিক্ত ডিবাগিং তথ্য রয়েছে। ( b/157764916 )
সংস্করণ 2.3.0-beta01
20 মে, 2020
androidx.navigation:navigation-*:2.3.0-beta01
প্রকাশিত হয়েছে। সংস্করণ 2.3.0-beta01-এ এই কমিট রয়েছে।
বাগ ফিক্স
- একটি সমস্যা সমাধান করা হয়েছে যেখানে প্রক্রিয়া মৃত্যুর পরে
NavBackStackEntry
এরLifecycle
সঠিকভাবে আপডেট করা হবে না। ( b/155218371 ) -
setGraph()
কল করার আগে নিবন্ধিতOnDestinationChangedListener
দৃষ্টান্তগুলি এখন একটি প্রক্রিয়ার মৃত্যুর পরে পুনরুদ্ধার করা গন্তব্য সঠিকভাবে পাঠানো হয়েছে। ( b/155218371 ) -
singleTop
ব্যবহার করার সময়,NavBackStackEntry
এখন সঠিকভাবে আর্গুমেন্ট আপডেট করা হয়েছে এবং আপডেট করা আর্গুমেন্টগুলি সমস্তOnDestinationChangeListener
ইনস্ট্যান্সে পাঠানো হয়েছে। ( b/156545508 )
নির্ভরতা আপডেট
-
NavigationUI
আর্টিফ্যাক্ট এখন CustomView1.1.0-rc01
এবং DrawerLayout1.1.0-rc01
এর উপর নির্ভর করে। ( aosp/1309696 )
সংস্করণ 2.3.0-alpha06
এপ্রিল 29, 2020
androidx.navigation:navigation-*:2.3.0-alpha06
প্রকাশিত হয়েছে। ( সংস্করণ 2.3.0-alpha06-এ এই কমিট রয়েছে। )
নতুন বৈশিষ্ট
-
app:uri
ছাড়াওapp:action
এবংapp:mimeType
সমর্থন করার জন্য ডিপ লিঙ্কিং প্রসারিত করা হয়েছে। NavController এখন নতুনNavDeepLinkRequest
ক্লাসের মাধ্যমে এই ক্ষেত্রগুলির যেকোন সংমিশ্রণে নেভিগেট করা সমর্থন করে। ( b/136573074 , b/135334841 )
এপিআই পরিবর্তন
- ডায়নামিক নেভিগেশন গন্তব্যের জন্য Kotlin DSL সমর্থন ব্যাপকভাবে প্রসারিত করেছে। ( b/148969800 )
বাগ ফিক্স
- একটি সমস্যা সমাধান করা হয়েছে যেখানে একটি নেস্টেড স্টার্ট গন্তব্য ব্যবহার করার সময় গভীর লিঙ্ক ইন্টেন্টগুলি উপেক্ষা করা হবে। ( b/154532067 )
সংস্করণ 2.3.0-alpha05
এপ্রিল 15, 2020
androidx.navigation:navigation-*:2.3.0-alpha05
প্রকাশিত হয়েছে। সংস্করণ 2.3.0-alpha05 এই কমিট ধারণ করে।
নতুন বৈশিষ্ট
- ডাইনামিক গ্রাফের জন্য
<include-dynamic>
ব্যবহার করে, আপনাকে আরapp:graphPackage
নির্দিষ্ট করতে হবে না এবং একটি ডিফল্ট একটি ডট পরেapplicationId
এmoduleName
প্রত্যয় যোগ করে ব্যবহার করা হবে। আপনারgraphPackage
কাস্টমাইজ করার প্রয়োজন হলে, একটি${applicationId}
স্থানধারক এখন সমর্থিত। ( b/152696768 ) - ন্যাভিগেশন গ্রাফ কোটলিন ডিএসএল এখন ক্রিয়াগুলির জন্য একটি
defaultArguments
Map
প্রকাশ করে, নেভিগেশন XML ফাইলগুলিতে<action>
উপাদানগুলিতে ডিফল্ট মান সেট করার ক্ষমতাকে মিরর করে। ( b/150345605 )
বাগ ফিক্স
- ন্যাভিগেশন 2.2.2 থেকে : যখন আপনার কার্যকলাপে একাধিক
NavHostFragment
দৃষ্টান্ত থাকে তখন আপনার গ্রাফের শুরুর গন্তব্যের সাথে গভীর লিঙ্ক করার সময় একটিIllegalStateException
সংশোধন করা হয়। ( b/147378752 )
নির্ভরতা আপডেট
- নেভিগেশন এখন ফ্র্যাগমেন্ট
1.2.4
এর উপর নির্ভর করে। ( aosp/1277325 ) - ডায়নামিক নেভিগেশন এখন প্লে কোর
1.7.2
এর উপর নির্ভর করে। ( aosp/1282257 )
সংস্করণ 2.3.0-alpha04
18 মার্চ, 2020
androidx.navigation:navigation-*:2.3.0-alpha04
প্রকাশিত হয়েছে। সংস্করণ 2.3.0-alpha04 এই কমিট ধারণ করে।
নতুন বৈশিষ্ট
- ন্যাভিগেশন Kotlin DSL-এ বৈশিষ্ট্য মডিউল কার্যকলাপ এবং খণ্ড গন্তব্যের জন্য সমর্থন যোগ করা হয়েছে। ( b/148969800 )
এপিআই পরিবর্তন
-
DynamicExtras
ক্লাস আর বিল্ডার প্যাটার্ন ব্যবহার করে না এবং এখন সরাসরি তৈরি করা যেতে পারে। ( aosp/1253671 ) -
DynamicActivityNavigator
এখন একটিActivity
পরিবর্তে তার কন্সট্রাক্টরে একটিContext
নেয়। ( aosp/1250252 )
বাগ ফিক্স
-
NavigationUI
আর খালি লেবেলকে উপেক্ষা করে না (অর্থাৎ,android:label=””
) সহ একটি গন্তব্য এবং এখন সঠিকভাবে একটি খালি স্ট্রিং-এ শিরোনাম সেট করে। ( b/148679860 )
নির্ভরতা আপডেট
- নেভিগেশন ডাইনামিক ফিচারের আর্টিফ্যাক্ট এখন প্লে কোর
1.6.5
এর উপর নির্ভর করে। ( b/149556401 )
সংস্করণ 2.3.0-alpha03
4 মার্চ, 2020
androidx.navigation:navigation-*:2.3.0-alpha03
প্রকাশিত হয়েছে। 2.3.0-alpha03 সংস্করণে এই কমিট রয়েছে।
এপিআই পরিবর্তন
- কংক্রিট
DrawerLayout
ক্লাসের উপর নির্ভর করার পরিবর্তে,AppBarConfiguration
এখন CustomView1.1.0-alpha02
এ চালু করাOpenable
ইন্টারফেস ব্যবহার করে (যাDrawerLayout
1.1.0-alpha04
হিসাবে প্রয়োগ করে), আপনাকেNavigationUI
সাথেOpenable
এর কাস্টম বাস্তবায়ন ব্যবহার করতে দেয়। ( b/129030452 )
বাগ ফিক্স
-
navigation-common-ktx
ProGuard নিয়মগুলি এখন সঠিকভাবে শুধুমাত্রNavArgs
ক্লাসগুলি রাখে যা সমস্তNavArgs
উদাহরণের পরিবর্তে ব্যবহৃত হয়। ( b/150213558 )
নির্ভরতা পরিবর্তন
- ন্যাভিগেশন কোর
1.2.0
এর উপর তার নির্ভরতা ফিরিয়ে দিয়েছে এবং এখন কোর1.1.0
এর উপর নির্ভর করে যাতে ডেভেলপারদেরকে একটি নতুন নির্ভরতার দিকে যেতে বাধ্য করা না হয় যখন নেভিগেশন কোর1.2.0
-তে কোনো নতুন API-এর উপর নির্ভর করে না।
সংস্করণ 2.3.0-alpha02
ফেব্রুয়ারী 19, 2020
androidx.navigation:navigation-*:2.3.0-alpha02
প্রকাশিত হয়েছে। সংস্করণ 2.3.0-alpha02 এই কমিট ধারণ করে।
নতুন বৈশিষ্ট
-
NavBackStackEntry
এখন আপনাকে একটি নির্দিষ্ট ব্যাক স্ট্যাক এন্ট্রির সাথে যুক্ত হওয়া উচিত অল্প পরিমাণে সংরক্ষিত অবস্থা সংরক্ষণের জন্য উপযুক্ত একটিSavedStateHandle
অ্যাক্সেস করার অনুমতি দেয়। একটি উদাহরণ ব্যবহারের ক্ষেত্রে ফলাফল প্রদান দেখুন। ( b/79672220 )
এপিআই পরিবর্তন
- বর্তমান এবং পূর্ববর্তী গন্তব্যগুলির জন্য একটি
NavBackStackEntry
পুনরুদ্ধার করা সহজ করার জন্যgetCurrentBackStackEntry()
এবংgetPreviousBackStackEntry()
এর সুবিধার পদ্ধতিগুলি যোগ করা হয়েছে৷ ( b/79672220 )
বাগ ফিক্স
-
navigateUp()
এখন আপনার নিজস্ব টাস্ক স্ট্যাকে আপনার অ্যাপ চালু করার সময় বর্তমান গন্তব্যের আর্গুমেন্ট এবংKEY_DEEP_LINK_INTENT
পূর্ববর্তী গন্তব্যে পাস করে। ( b/147456890 )
নির্ভরতা পরিবর্তন
- নেভিগেশন এখন কোর
1.2.0
এর উপর নির্ভর করে।
সংস্করণ 2.3.0-alpha01
ফেব্রুয়ারি 5, 2020
androidx.navigation:navigation-*:2.3.0-alpha01
প্রকাশিত হয়েছে। সংস্করণ 2.3.0-alpha01-এ এই কমিট রয়েছে ।
নতুন বৈশিষ্ট
- নতুন
navigation-testing
নিদর্শন একটিTestNavHostController
ক্লাস প্রদান করে। এই শ্রেণীটি ন্যাভিগেশন পরীক্ষা করার সময় একটি মকNavController
ব্যবহার করার একটি বিকল্প প্রদান করে যা আপনাকে বর্তমান গন্তব্য সেট করতে এবং নেভিগেশন অপারেশনের পরে ব্যাক স্ট্যাক যাচাই করতে দেয়। ( b/140884273 ) - নতুন
navigation-dynamic-features-fragment
(এবং এর ট্রানজিটিভ নির্ভরতা, নেভিগেশন-<include-dynamic>
navigation-dynamic-features-runtime
) আপনাকে বৈশিষ্ট্য মডিউল থেকে গন্তব্য বা সমগ্র নেভিগেশন গ্রাফ অন্তর্ভুক্ত করতে দেয়, যা অন-এর বিরামহীন ইনস্টলেশন প্রদান করে। সেই গন্তব্যগুলিতে নেভিগেট করার সময় বৈশিষ্ট্য মডিউলগুলির চাহিদা। আরও তথ্যের জন্য বৈশিষ্ট্য মডিউল সহ নেভিগেট দেখুন। ( b/132170186 )
বাগ ফিক্স
- ন্যাভিগেশন
2.2.1
থেকে : ক্যোয়ারী প্যারামিটার ছাড়া ডিপ লিঙ্কগুলি এখন সঠিকভাবে যেকোন কোয়েরি প্যারামিটারকে অগ্রাহ্য করে না বরং তাদের ট্রেলিং{argument}
উপাদানে যুক্ত করা বা ডিপ লিঙ্কের সাথে মেলে না। ( b/147447512 ) - নেভিগেশন
2.2.1
থেকে :android.enableJetifier=true
প্রয়োজন নেই তা নিশ্চিত করার জন্যDrawerArrowDrawable
এরnavigation-ui
ProGuard নিয়মগুলি আপডেট করা হয়েছে। ( b/147610424 ) - ন্যাভিগেশন
2.2.1
থেকে :navigation-common-ktx
মডিউলে এখনnavigation-runtime-ktx
হিসাবে একই ম্যানিফেস্ট প্যাকেজ নাম ভাগ করার পরিবর্তে একটি অনন্য ম্যানিফেস্ট প্যাকেজ নাম রয়েছে। ( aosp/1141947 )
নির্ভরতা আপডেট
- নেভিগেশন
2.2.1
থেকে : নেভিগেশন2.2.1
এখন নির্ভর করে লাইফসাইকেল ভিউমডেল সেভডস্টেট2.2.0
এবং ফ্র্যাগমেন্ট1.2.1
এর উপর।
সংস্করণ 2.2.2
সংস্করণ 2.2.2
এপ্রিল 15, 2020
androidx.navigation:navigation-*:2.2.2
প্রকাশিত হয়েছে। সংস্করণ 2.2.2-এ এই কমিট রয়েছে।
বাগ ফিক্স
- আপনার কার্যকলাপে একাধিক
NavHostFragment
দৃষ্টান্ত থাকলে আপনার গ্রাফের শুরুর গন্তব্যের সাথে গভীর লিঙ্ক করার সময় একটিIllegalStateException
সংশোধন করা হয়েছে। ( b/147378752 ) -
NavigationUI
আর খালি লেবেলকে উপেক্ষা করে না (অর্থাৎ,android:label=””
) সহ একটি গন্তব্য এবং এখন সঠিকভাবে একটি খালি স্ট্রিং-এ শিরোনাম সেট করে। এটি পূর্বে নেভিগেশন 2.3.0-alpha04 এ প্রকাশিত হয়েছিল। ( b/148679860 ) -
navigation-common-ktx
ProGuard নিয়মগুলি এখন সঠিকভাবে শুধুমাত্রNavArgs
ক্লাসগুলি রাখে যা সমস্তNavArgs
উদাহরণের পরিবর্তে ব্যবহৃত হয়। এটি পূর্বে নেভিগেশন 2.3.0-alpha03 এ প্রকাশিত হয়েছিল। ( b/150213558
নির্ভরতা আপডেট
- নেভিগেশন এখন ফ্র্যাগমেন্ট
1.2.4
এর উপর নির্ভর করে। ( aosp/1277325 )
সংস্করণ 2.2.1
সংস্করণ 2.2.1
ফেব্রুয়ারি 5, 2020
androidx.navigation:navigation-*:2.2.1
প্রকাশিত হয়েছে। সংস্করণ 2.2.1-এ এই কমিটগুলি রয়েছে ।
বাগ ফিক্স
- ক্যোয়ারী প্যারামিটার ছাড়া ডিপ লিঙ্কগুলি এখন সঠিকভাবে যেকোন কোয়েরি প্যারামিটারকে উপেক্ষা করে না বরং তাদের পিছনের
{argument}
এলিমেন্টে যুক্ত করা বা ডিপ লিঙ্কের সাথে মেলে না। ( b/147447512 ) -
android.enableJetifier=true
প্রয়োজন নেই তা নিশ্চিত করতেDrawerArrowDrawable
এর জন্যnavigation-ui
ProGuard নিয়মগুলি আপডেট করা হয়েছে। ( b/147610424 ) -
navigation-common-ktx
মডিউলে এখনnavigation-runtime-ktx
হিসাবে একই ম্যানিফেস্ট প্যাকেজ নাম ভাগ করার পরিবর্তে একটি অনন্য ম্যানিফেস্ট প্যাকেজ নাম রয়েছে। ( aosp/1141947 )
নির্ভরতা আপডেট
- নেভিগেশন
2.2.1
এখন লাইফসাইকেল ভিউমডেল সেভডস্টেট2.2.0
এবং ফ্র্যাগমেন্ট1.2.1
এর উপর নির্ভর করে।
সংস্করণ 2.2.0
সংস্করণ 2.2.0
জানুয়ারী 22, 2020
androidx.navigation:navigation-*:2.2.0
প্রকাশিত হয়েছে। সংস্করণ 2.2.0-এ এই কমিট রয়েছে ।
2.1.0 থেকে গুরুত্বপূর্ণ পরিবর্তন
- NavBackStackEntry : আপনি এখন
NavController.getBackStackEntry()
কল করতে পারেন, একটি গন্তব্যের আইডি বা পিছনের স্ট্যাকের নেভিগেশন গ্রাফে পাস করে। ফেরত দেওয়াNavBackStackEntry
একটি নেভিগেশন-চালিতLifecycleOwner
,ViewModelStoreOwner
(NavController.getViewModelStoreOwner()
), এবংSavedStateRegistryOwner
প্রদান করে, সেই গন্তব্য শুরু করতে ব্যবহৃত আর্গুমেন্টগুলি প্রদান করার পাশাপাশি। - Lifecycle ViewModel SavedState ইন্টিগ্রেশন :
SavedStateViewModelFactory
এখন একটি ডিফল্ট ফ্যাক্টরি যাby navGraphViewModels()
বাViewModelProvider
কনস্ট্রাক্টর ব্যবহার করার সময় একটিViewModelStoreOwner
দিয়ে যাNavController.getBackStackEntry()
বাNavController.getViewModelStoreOwner()
. - ডিপ লিঙ্কের জন্য ক্যোয়ারী প্যারামিটার সমর্থন : ক্যোয়ারী প্যারামিটার সহ ডিপ লিঙ্কগুলি এখন পুনরায় সাজানো ক্যোয়ারী প্যারামিটার সমর্থন করে; যে আর্গুমেন্টগুলির একটি ডিফল্ট মান আছে বা বাতিলযোগ্য সেগুলি এখন ডিপ লিঙ্কগুলির সাথে মিলে যাওয়ার সময় ঐচ্ছিক৷
- উন্নত অ্যানিমেশন সমর্থন :
NavHostFragment
এখন ফ্র্যাগমেন্ট 1.2.0 থেকেFragmentContainerView
ব্যবহার করে, অ্যানিমেশন z-অর্ডারিং সমস্যা এবং উইন্ডো ইনসেটগুলি ফ্র্যাগমেন্টে পাঠানোর সমাধান করে।
সংস্করণ 2.2.0-rc04
18 ডিসেম্বর, 2019
androidx.navigation:navigation-*:2.2.0-rc04
প্রকাশিত হয়েছে। সংস্করণ 2.2.0-rc04-এ এই কমিট রয়েছে ।
বাগ ফিক্স
- ফ্র্যাগমেন্ট
1.2.0-rc04
এ অ্যাডজাস্ট করা ফেইড অ্যানিমেশনগুলির সাথে মেলেnavigation-ui
দ্বারা ব্যবহৃত ডিফল্ট ফেড অ্যানিমেশনগুলি সামঞ্জস্য করা হয়েছে। ( b/145769814 )
সংস্করণ 2.2.0-rc03
4 ডিসেম্বর, 2019
androidx.navigation:navigation-*:2.2.0-rc03
প্রকাশিত হয়েছে। 2.2.0-rc03 সংস্করণে এই কমিটগুলি রয়েছে ।
বাগ ফিক্স
- ক্যোয়ারী প্যারামিটার এবং পাথের শেষ অংশ হিসেবে একটি আর্গুমেন্ট ব্যবহার করার সময় গভীর লিঙ্ক পার্সিং এর একটি সমস্যা সমাধান করা হয়েছে যা চূড়ান্ত পাথ আর্গুমেন্টের একাধিক অক্ষরকে পার্স করা থেকে বাধা দেয়। ( b/144554689 )
- গভীর লিঙ্ক পার্সিংয়ের সাথে একটি সমস্যা সমাধান করা হয়েছে যেখানে ঐচ্ছিক প্যারামিটার
null
এর পরিবর্তে"@null"
পাবে। ( b/141613546 ) -
FragmentContainerView
এর সাথে ব্যবহার করার সময়NavHostFragment
এখন কনফিগারেশন পরিবর্তনের পরে সঠিকভাবে গ্রাফটিকে পুনরুদ্ধার করে। ( b/143752103 )
নির্ভরতা পরিবর্তন
- নেভিগেশন এখন নির্ভর করে Lifecycle
2.2.0-rc03
, Lifecycle ViewModel SavedState1.0.0-rc03
, Activity1.1.0-rc03
, এবং ফ্র্যাগমেন্ট1.2.0-rc03
যেখানে উপযুক্ত।
সংস্করণ 2.2.0-rc02
নভেম্বর 7, 2019
androidx.navigation:navigation-*:2.2.0-rc02
প্রকাশিত হয়েছে। সংস্করণ 2.2.0-rc02-এ এই কমিট রয়েছে ।
নির্ভরতা পরিবর্তন
- নেভিগেশন এখন androidx.lifecycle
2.2.0-rc02
এর উপর নির্ভর করে।
সংস্করণ 2.2.0-rc01
23 অক্টোবর, 2019
androidx.navigation:navigation-*:2.2.0-rc01
2.2.0-beta01
থেকে কোনো পরিবর্তন ছাড়াই প্রকাশ করা হয়েছে। সংস্করণ 2.2.0-rc01-এ এই কমিট রয়েছে ।
সংস্করণ 2.2.0-beta01
9 অক্টোবর, 2019
androidx.navigation:navigation-*:2.2.0-beta01
প্রকাশিত হয়েছে। সংস্করণ 2.2.0-beta01-এ এই কমিট রয়েছে ।
নতুন বৈশিষ্ট
- ডিবাগ করার সময় আরও সহায়ক তথ্য প্রদান করতে
NavDestination
এবং এর সাবক্লাসগুলি এখনtoString()
ওভাররাইড করে। ( b/141264986 )
আচরণ পরিবর্তন
- অতিরিক্ত ক্যোয়ারী প্যারামিটারগুলি এখন উপেক্ষা করা হয় যখন ম্যাচটি ব্যর্থ হওয়ার পরিবর্তে গভীর লিঙ্কগুলি মেলে। ( b/141482822 )
বাগ ফিক্স
- একটি সমস্যা সমাধান করা হয়েছে যেখানে একটি গভীর লিঙ্কের পথের আর্গুমেন্টগুলি উপেক্ষা করা হবে যদি ক্যোয়ারী প্যারামিটারগুলিও নির্দিষ্ট করা হয়। ( b/141505755 )
-
Activity
-এnavArgs()
Kotlin এক্সটেনশনে এখন একটি ভাল ত্রুটি বার্তা রয়েছে যখন কোনও অতিরিক্ত নেই৷ ( b/141408999 ) - সেফ আর্গস জেনারেট করা
Directions
জাভা ক্লাসে এখন ডিফল্ট মান রয়েছে। ( b/141099045 ) - Safe Args তৈরি করা
Args
Java ক্লাসে এখন ডিফল্ট মান রয়েছে। ( b/140123727 ) - একটি
Toolbar
ব্যবহার করার সময়,NavigationUI
দুটি শীর্ষ স্তরের গন্তব্যের মধ্যে যাওয়ার সময় পাঠ্য পরিবর্তনকে আর অ্যানিমেট করে না। ( b/140848160 )
সংস্করণ 2.2.0-alpha03
সেপ্টেম্বর 18, 2019
androidx.navigation:navigation-*:2.2.0-alpha03
প্রকাশিত হয়েছে। সংস্করণ 2.2.0-alpha03-এ এই কমিট রয়েছে ।
আচরণ পরিবর্তন
-
setGraph
কল করার পরেsetViewModelStore()
কে কল করলে এখন একটিIllegalStateException
হয়। এটি সর্বদাNavHost
দ্বারা প্রাথমিক সেটআপের অংশ হিসাবে সেট করা উচিত যাতে নিশ্চিত করা যায় যে সমস্তNavBackStackEntry
দৃষ্টান্তেViewModel
দৃষ্টান্তগুলির জন্য একটি সামঞ্জস্যপূর্ণ স্টোরেজ রয়েছে৷ ( aosp/1111821 )
বাগ ফিক্স
- একাধিক ভিন্ন নেভিগেশন গ্রাফ স্কোপড
ViewModelStore
দৃষ্টান্তগুলির সাথে সংযুক্তViewModel
দৃষ্টান্তগুলি ব্যবহার করার সময় একটিConcurrentModificationException
স্থির করা হয়েছে৷ ( aosp/1112257 )
সংস্করণ 2.2.0-alpha02
5 সেপ্টেম্বর, 2019
androidx.navigation:navigation-*:2.2.0-alpha02
প্রকাশিত হয়েছে। এই সংস্করণে অন্তর্ভুক্ত কমিটগুলি এখানে পাওয়া যাবে।
নতুন বৈশিষ্ট
- ক্যোয়ারী প্যারামিটারের সাথে গভীর লিঙ্কগুলি এখন পুনরায় সাজানো ক্যোয়ারী প্যারামিটার সমর্থন করে; যে আর্গুমেন্টগুলির একটি ডিফল্ট মান আছে বা বাতিলযোগ্য সেগুলি এখন ডিপ লিঙ্কগুলির সাথে মিলে যাওয়ার সময় ঐচ্ছিক৷ ( b/133273839 )
- আপনি এখন
NavController.getBackStackEntry()
কল করতে পারেন, একটি গন্তব্যের আইডি বা পিছনের স্ট্যাকের নেভিগেশন গ্রাফে পাস করে। ফেরত দেওয়াNavBackStackEntry
একটি নেভিগেশন-চালিতLifecycleOwner
,ViewModelStoreOwner
(NavController.getViewModelStoreOwner()
), এবংSavedStateRegistryOwner
প্রদান করে, সেই গন্তব্য শুরু করতে ব্যবহৃত আর্গুমেন্টগুলি প্রদান করার পাশাপাশি। ( aosp/1101691 , aosp/1101710 )
বাগ ফিক্স
- একটি সমস্যা সমাধান করা হয়েছে যেখানে
ViewPager2
এ একটিNavHostFragment
যোগ করা একটিIllegalArgumentException
এর সাথে ব্যর্থ হয়েছে। ( b/133640271 ) -
NavInflater
এখনgetResourceName()
অপ্রয়োজনীয়ভাবে কল করা এড়িয়ে যায়, মুদ্রাস্ফীতির সময়কে 40% পর্যন্ত গতি দেয়। ( b/139213740 )
সংস্করণ 2.2.0-alpha01
7 আগস্ট, 2019
androidx.navigation:navigation-*:2.2.0-alpha01
প্রকাশিত হয়েছে। এই সংস্করণে অন্তর্ভুক্ত কমিটগুলি এখানে পাওয়া যাবে।
নতুন বৈশিষ্ট
-
NavController.getViewModelStoreOwner()
দ্বারা প্রত্যাবর্তিতViewModelStoreOwner
সহby navGraphViewModels()
বাViewModelProvider
কনস্ট্রাক্টর ব্যবহার করার সময়SavedStateViewModelFactory
হল ডিফল্ট ফ্যাক্টরি। ( b/135716331 )
এপিআই পরিবর্তন
- নেভিগেশন
2.1.0-rc01
থেকে:2.1.0-alpha02
এ প্রবর্তিতNavController
এ অবলুপ্তgetViewModelStore()
API সরানো হয়েছে। ( aosp/1091021 )
বাগ ফিক্স
-
NavHostFragment
এখনFragmentContainerView
ব্যবহার করে, অ্যানিমেশন z-অর্ডারিং সমস্যার সমাধান করে এবং উইন্ডো ইনসেটগুলি ফ্র্যাগমেন্টে প্রেরণ করে। ( b/137310379 )
সংস্করণ 2.1.0
সংস্করণ 2.1.0
5 সেপ্টেম্বর, 2019
androidx.navigation:navigation-*:2.1.0
প্রকাশিত হয়েছে। এই সংস্করণে অন্তর্ভুক্ত কমিটগুলি এখানে পাওয়া যাবে।
2.0.0 থেকে গুরুত্বপূর্ণ পরিবর্তন
- একটি নেভিগেশন গ্রাফে ViewModels স্কোপিং : আপনি এখন ViewModels তৈরি করতে পারেন যা নেভিগেশন গ্রাফ স্তরে স্কোপ করা হয়েছে
by navGraphViewModels()
প্রপার্টি প্রতিনিধি ব্যবহার করে Kotlin ব্যবহারকারীদের জন্য-ktx
লাইব্রেরি ব্যবহার করে অথবাNavController
এ যোগ করাgetViewModelStoreOwner()
API ব্যবহার করে। আরও তথ্যের জন্য গন্তব্যগুলির মধ্যে UI- সম্পর্কিত ডেটা ভাগ করুন দেখুন৷ - ডায়ালগ গন্তব্য : আপনি এখন
<dialog>
গন্তব্যগুলি তৈরি করতে পারেন যা একটিDialogFragment
দেখাবে যখন আপনি সেগুলিতেnavigate
।NavHostFragment
ডিফল্টরূপে ডায়ালগ গন্তব্য সমর্থন করে। আরও তথ্যের জন্য ডায়ালগ ফ্র্যাগমেন্ট থেকে একটি গন্তব্য তৈরি করুন দেখুন। - Uri দ্বারা নেভিগেট করা : আপনি এখন একটি
Uri
ব্যবহার করেnavigate
করতে পারেন, যা সেখানে নেভিগেট করার জন্য আপনার গন্তব্যে যোগ করা<deepLink>
ব্যবহার করে। আরও তথ্যের জন্য Uri ব্যবহার করে নেভিগেট দেখুন। - NavHostController : একটি কাস্টম
NavHost
নির্মাণের জন্য বিশেষভাবে ব্যবহৃত APIগুলিকেNavHostController
এ স্থানান্তরিত করা হয়েছে, যা বাস্তবায়নকে তাদেরNavController
হোস্টিংLifecycleOwner
,OnBackPressedDispatcher
, এবংViewModelStore
এর সাথে সংযুক্ত করার অনুমতি দেয়।
সংস্করণ 2.1.0-rc01
7 আগস্ট, 2019
androidx.navigation:navigation-*:2.1.0-rc01
প্রকাশিত হয়েছে। এই সংস্করণে অন্তর্ভুক্ত কমিটগুলি এখানে পাওয়া যাবে।
এপিআই পরিবর্তন
-
2.1.0-alpha02
এ প্রবর্তিতNavController
এ অবচিতgetViewModelStore()
API সরানো হয়েছে। ( aosp/1091021 )
সংস্করণ 2.1.0-beta02
জুলাই 19, 2019
androidx.navigation:*:2.1.0-beta02
প্রকাশিত হয়েছে। এই সংস্করণে অন্তর্ভুক্ত কমিটগুলি এখানে পাওয়া যাবে।
বাগ ফিক্স
-
2.1.0-beta01
এ প্রবর্তিত অনিচ্ছাকৃত জ্যাকোকো নির্ভরতা সরানো হয়েছে। ( b/137782950 )
সংস্করণ 2.1.0-beta01
জুলাই 17, 2019
androidx.navigation:*:2.1.0-beta01
প্রকাশিত হয়েছে। এই সংস্করণে অন্তর্ভুক্ত কমিটগুলি এখানে পাওয়া যাবে।
নতুন বৈশিষ্ট
- একটি
Toolbar
বাCollapsingToolbarLayout
এর সাথেsetupWithNavController()
ব্যবহার করার সময়NavigationUI
এখন আপ বোতামটি অপসারণকে অ্যানিমেট করে। ( b/131403621 )
বাগ ফিক্স
-
findNavController()
এর সাথে একই ধারক সহ একাধিক NavHostFragments ব্যবহার করার সময় একটি সময় সমস্যা সমাধান করা হয়েছে। ( b/136021571 )
সংস্করণ 2.1.0-alpha06
জুলাই 2, 2019
androidx.navigation:*:2.1.0-alpha06
প্রকাশিত হয়েছে। এই সংস্করণে অন্তর্ভুক্ত কমিটগুলি এখানে পাওয়া যাবে।
নতুন বৈশিষ্ট
- NavHostFragment দ্বারা ব্যবহৃত
app:navGraph
বৈশিষ্ট্যটি এখনnavigation-runtime
আর্টিফ্যাক্টে সরানো হয়েছে। কাস্টম নেভিগেটর যেগুলি XML এর মাধ্যমে যোগ করা যেতে পারে তাদের নেভিগেশন এডিটরের হোস্ট প্যানেলের সাথে একীকরণ পেতে এই বৈশিষ্ট্যটি ব্যবহার করা উচিত। ( b/133880955 )
এপিআই পরিবর্তন
-
NavController
এgetViewModelStore()
API-কে নতুনgetViewModelStoreOwner()
পদ্ধতির অনুকূলে বাতিল করা হয়েছে যা একটিViewModelStoreOwner
প্রদান করে। ( aosp/987010 ) - ফ্লোটিং উইন্ডো গন্তব্যের বাস্তবায়ন, যেমন
<dialog>
গন্তব্য, একটি মার্কার ইন্টারফেসে সাধারণীকরণ করা হয়েছে,FloatingWindow
, যেটি এখন সমস্ত<dialog>
গন্তব্য বাস্তবায়ন করে। শীর্ষ অ্যাপ বারের সাথে ইন্টারঅ্যাক্ট করার জন্য নেভিগেশনইউআই পদ্ধতিগুলি এখনFloatingWindow
গন্তব্যগুলিকে উপেক্ষা করে। ( b/133600763 )
আচরণ পরিবর্তন
- একটি
<dialog>
গন্তব্য ব্যবহার করার সময় স্ক্রীনে যা দেখা যায় তার সাথে ন্যাভিগেশন এখন সঠিকভাবে তার অবস্থাকে সিঙ্ক করে রাখে। ফলস্বরূপ, ন্যাভিগেশন এখন স্বয়ংক্রিয়ভাবে<dialog>
গন্তব্যগুলি পপ করে যখন আপনি একটি নন-ডায়ালগ এবং নন-অ্যাক্টিভিটি গন্তব্যে নেভিগেট করেন, যেমন একটি<fragment>
গন্তব্য। ( b/134089818 )
বাগ ফিক্স
- নেভিগেশন এখন অ্যানিমেশনকে দমন করে যা একটি গভীর লিঙ্ক পরিচালনা করার সময়, একটি ভিজ্যুয়াল ফ্ল্যাশ ঠিক করার সময় কার্যকলাপটি পুনরায় তৈরি করার সময় ঘটে। ( b/130362979 )
- একটি বাগ সংশোধন করা হয়েছে যেখানে একটি ফ্র্যাগমেন্ট পপ করার সময় ন্যাভিগেশন ব্যাক স্ট্যাক সিঙ্কের বাইরে থাকবে কারণ প্রাথমিক খণ্ডটি যোগ করা হচ্ছে। ( b/133832218 )
সংস্করণ 2.1.0-alpha05
জুন 5, 2019
androidx.navigation:*:2.1.0-alpha05
প্রকাশিত হয়েছে। এই সংস্করণে অন্তর্ভুক্ত কমিটগুলি এখানে পাওয়া যাবে।
এপিআই পরিবর্তন
-
NavController
এ হোস্ট সম্পর্কিত API-গুলির নাম পরিবর্তন করা হয়েছে এবংNavController
,NavHostController
এর একটি নতুন উপশ্রেণীতে স্থানান্তরিত করা হয়েছে। ( aosp/966091 ) -
NavController
setHostOnBackPressedDispatcherOwner()
পদ্ধতিটিNavHostController
এরsetOnBackPressedDispatcher()
পদ্ধতিতে প্রতিস্থাপিত হয়েছে এবং এখন এটিকে কল করার আগেsetLifecycleOwner()
কল করতে হবে। ( aosp/965409 ) -
NavHostController
এখন একটিenableOnBackPressed(boolean)
পদ্ধতি রয়েছে যাNavHostOnBackPressedManager
ক্লাস প্রতিস্থাপন করে যা পূর্বেsetHostOnBackPressedDispatcherOwner()
দ্বারা ফেরত দেওয়া হয়েছিল। ( aosp/966091 )
বাগ ফিক্স
- URI দ্বারা নেভিগেট করার পরে ব্যাক স্ট্যাক সঠিক ছিল না এমন একটি সমস্যা সমাধান করা হয়েছে। ( b/132509387 )
- NavController দ্বারা স্বয়ংক্রিয়ভাবে পরিচালিত গভীর লিঙ্কগুলি এখন শুধুমাত্র একবার ট্রিগার করে। ( b/132754763 )
সংস্করণ 2.1.0-alpha04
16 মে, 2019
androidx.navigation:*:2.1.0-alpha04
প্রকাশিত হয়েছে। এই সংস্করণে অন্তর্ভুক্ত কমিটগুলি এখানে পাওয়া যাবে।
বাগ ফিক্স
-
NavHostFragment
সঠিকভাবেapp:defaultNavHost
সম্মান করে যখন সিস্টেম ব্যাক বোতাম ইভেন্টগুলিকে বাধা দেয়, নেভিগেশন2.1.0-alpha03
এ রিগ্রেশন ঠিক করে। b/132077777 -
DialogFragmentNavigator
এখন সঠিকভাবেpopBackStack()
এবংnavigateUp()
অপারেশন পরিচালনা করে। b/132576764 - একটি
IllegalStateException: unknown destination during restore
যখন নেস্টেড গ্রাফগুলির মধ্যে বারবার নেভিগেট করা হয়। b/131733658
সংস্করণ 2.1.0-alpha03
7 মে, 2019
androidx.navigation:*:2.1.0-alpha03
প্রকাশিত হয়েছে। এই সংস্করণে অন্তর্ভুক্ত কমিটগুলি এখানে পাওয়া যাবে।
জ্ঞাত সমস্যা
-
app:defaultNavHost="false"
b/132077777
নতুন বৈশিষ্ট
- আপনি এখন
<dialog>
গন্তব্যগুলি তৈরি করতে পারেন যা একটিDialogFragment
দেখাবে যখন আপনি সেগুলিতেnavigate
।NavHostFragment
ডিফল্টরূপে ডায়ালগ গন্তব্য সমর্থন করে। b/80267254 - একটি রিসোর্স আইডি বা একটি
NavDirections
উদাহরণ দিয়েnavigate
কল করার পাশাপাশি, আপনি এখন একটিUri
এর মাধ্যমে নেভিগেট করতে পারেন, যা সঠিক গন্তব্যে নেভিগেট করার জন্য একটি গন্তব্যে যোগ করা<deepLink>
ব্যবহার করে। b/110412864
আচরণ পরিবর্তন
- ক্রিয়াকলাপ এবং টুকরোগুলির ডিফল্ট অ্যানিমেশন গতির সাথে মেলে নেভিগেশনইউআই দ্বারা প্রদত্ত ডিফল্ট অ্যানিমেশনগুলি 400ms থেকে 220ms পর্যন্ত বৃদ্ধি করা হয়েছে৷ b/130055522
এপিআই পরিবর্তন
-
NavHostFragment
এরcreateFragmentNavigator()
পদ্ধতিটি অবমূল্যায়িত করা হয়েছে এবং এর কার্যকারিতা নতুনonCreateNavController()
পদ্ধতিতে স্থানান্তরিত হয়েছে যাতে এটি আরও স্পষ্ট হয় যেNavHostFragment
সাবক্লাস করার সময় এটি কাস্টম নেভিগেটর যোগ করার সঠিক এন্ট্রি পয়েন্ট। b/122802849 - একটি
hasDeepLink()
পদ্ধতিNavDestination
এ যোগ করা হয়েছে যাতে আপনি একটি প্রদত্তUri
সেই গন্তব্যের দ্বারা পরিচালনা করা যায় কিনা বা, একটিNavGraph
এর ক্ষেত্রে, নেভিগেশন গ্রাফের যেকোন গন্তব্যটি পরীক্ষা করতে পারবেন। b/117437718
বাগ ফিক্স
- ডিফল্ট আর্গুমেন্ট এখন সঠিকভাবে
OnDestinationChangedListener
ইনস্ট্যান্সে পাঠানো হয়েছে। b/130630686 -
NavHostFragment
এখনOnBackPressedDispatcher
ব্যবহার করে সিস্টেম ব্যাক ইভেন্টগুলিকে বাধা দেয়, ফ্র্যাগমেন্টে ফিরে আসার পরে ফ্র্যাগমেন্ট লাইফসাইকেল পদ্ধতিতে শর্তসাপেক্ষ নেভিগেশন করার সময় একটি সমস্যা সমাধান করে। b/111598096 - Safe Args-এর জন্য, একটি
android:defaultValue=”@null”
একটি অনির্দিষ্টapp:argType
এখনstring
আর্গুমেন্ট হিসেবে সঠিকভাবে অনুমান করা হয়েছে। b/129629192
সংস্করণ 2.1.0-alpha02
3 এপ্রিল, 2019
androidx.navigation:*:2.1.0-alpha02
প্রকাশিত হয়েছে। এই সংস্করণে অন্তর্ভুক্ত কমিটগুলি এখানে পাওয়া যাবে।
নতুন বৈশিষ্ট
- আপনি এখন Kotlin ব্যবহারকারীদের জন্য
by navGraphViewModels()
প্রপার্টি ডেলিগেটের মাধ্যমে অথবাNavController
এ যোগ করাgetViewModelStore()
API ব্যবহার করে নেভিগেশন গ্রাফ স্তরে স্কোপ করা ViewModels তৈরি করতে পারেন। b/111614463
এপিআই পরিবর্তন
- আপনি এখন একটি
app:targetPackage
যোগ করতে পারেন একটি<activity>
গন্তব্যে প্যাকেজের নাম সীমিত করতে। প্যাকেজটিকে আপনার নিজের অ্যাপ্লিকেশন আইডিতে সীমাবদ্ধ করার জন্য এটিapp:targetPackage="${applicationId}"
সমর্থন করে৷ b/110975456
বাগ ফিক্স
- গতিশীল বৈশিষ্ট্য ব্যবহার করার সময় ClassNotFoundExceptions প্রতিরোধ করে,
<activity>
গন্তব্যগুলির জন্যandroid:name
আর মুদ্রাস্ফীতির সময়ে একটি ক্লাসে পার্স করা হয় না। b/124538597
সংস্করণ 2.1.0-alpha01
মার্চ 19, 2019
এটি নেভিগেশন 2.1.0
এর প্রথম আলফা রিলিজ।
নির্ভরতা পরিবর্তন
- নেভিগেশন এখন
androidx.core:core:1.0.1
এবংandroidx.fragment:fragment:1.1.0-alpha05
এর উপর নির্ভর করে। এই রিলিজটিandroidx.legacy:legacy-support-core-utils:1.0.0
এর উপর নির্ভরতাও সরিয়ে দেয়। b/128632612
এপিআই পরিবর্তন
- একটি নতুন
Navigation.createNavigateOnClickListener(NavDirections)
পদ্ধতি একটি রিসোর্স আইডি এবং বান্ডেল সহ একটি ক্লিক শ্রোতা তৈরির বিকল্প হিসেবে যোগ করা হয়েছে। b/127631752 -
FragmentNavigator.instantiateFragment
এখন অবহেলিত। ডিফল্ট বাস্তবায়ন এখনFragmentFactory
ব্যবহার করে ফ্র্যাগমেন্টকে ইনস্ট্যান্টিয়েট করতে। b/119054429
বাগ ফিক্স
-
android:defaultValue="@null"
ব্যবহার করার সময় একটি সমস্যা সমাধান করে, গন্তব্যের সাথে যুক্ত আর্গুমেন্ট থাকলে নেভিগেশন আর একটি নালBundle
পাঠায় না। b/128531879 - নিরাপদ আর্গস এখন KotlinPoet 1.1.0 এর উপর নির্ভর করে, অত্যন্ত দীর্ঘ প্যাকেজ নামগুলির সাথে একটি সমস্যা সমাধান করে৷ b/123654948
সংস্করণ 2.0.0
সংস্করণ 2.0.0
14 মার্চ, 2019
নেভিগেশন 2.0.0
2.0.0-rc02
থেকে কোনো পরিবর্তন ছাড়াই প্রকাশ করা হয়েছে।
সংস্করণ 2.0.0-rc02
6 মার্চ, 2019
নেভিগেশন 2.0.0-rc02 androidx.navigation
গ্রুপ আইডি সহ নতুন শিল্পকর্ম সরবরাহ করে এবং এর নির্ভরতাকে AndroidX সমতুল্যগুলিতে পরিবর্তন করে।
2.0.0-rc02-এর আচরণ নেভিগেশন 1.0.0-rc02-এর আচরণের অনুরূপ এবং নতুন নির্ভরতাগুলির সাথে মেলে আপনার নির্ভরতা আপডেট করার পাশাপাশি 1.0.0-rc02 থেকে আপডেট করার জন্য আপনার কোডে কোনো পরিবর্তনের প্রয়োজন হবে না।
নেভিগেশনের 2.X রিলিজগুলি ব্যবহার করতে আপনার প্রকল্প অবশ্যই AndroidX-এ স্থানান্তরিত হয়েছে ৷ সাপোর্ট লাইব্রেরি নির্ভরতা ব্যবহার করে নেভিগেশন 1.0 স্থিতিশীল শেষ রিলিজ হবে; 1.0 এর বাইরে সমস্ত ভবিষ্যত বিকাশ হবে AndroidX এর উপর ভিত্তি করে এবং 2.0 স্থিতিশীল রিলিজের উপর ভিত্তি করে তৈরি করা হবে।
প্রি-AndroidX নির্ভরতা
ন্যাভিগেশনের প্রাক-AndroidX সংস্করণগুলির জন্য, এই নির্ভরতাগুলি অন্তর্ভুক্ত করুন:
dependencies {
def nav_version = "1.0.0"
implementation "android.arch.navigation:navigation-fragment:$nav_version" // For Kotlin use navigation-fragment-ktx
implementation "android.arch.navigation:navigation-ui:$nav_version" // For Kotlin use navigation-ui-ktx
}
Safe args- এর জন্য, আপনার শীর্ষ স্তরের build.gradle
ফাইলে নিম্নলিখিত ক্লাসপাথ যোগ করুন
buildscript {
repositories {
google()
}
dependencies {
classpath "android.arch.navigation:navigation-safe-args-gradle-plugin:1.0.0"
}
}
সংস্করণ 1.0.0
সংস্করণ 1.0.0
14 মার্চ, 2019
নেভিগেশন 1.0.0
1.0.0-rc02
থেকে কোনো পরিবর্তন ছাড়াই প্রকাশ করা হয়েছে।
সংস্করণ 1.0.0-rc02
ফেব্রুয়ারী 26, 2019
এটি নেভিগেশন এর 1.0.0 স্থিতিশীল রিলিজের জন্য দ্বিতীয় রিলিজ প্রার্থী। এই রিলিজে অনেকগুলি বাগ ফিক্স রয়েছে৷
বাগ ফিক্স
- একটি সমস্যা সমাধান করা হয়েছে যেখানে
popBackStack()
উপেক্ষা করা হবে যদি রুট গ্রাফে একটি আইডি b/126251695 না থাকে -
navigateUp()
এখনFLAG_ACTIVITY_NEW_TASK
b/126082008 ছাড়া একটি গভীর লিঙ্ক পরিচালনা করার পরে কল করার সময় আপনার অ্যাপের টাস্কে নেভিগেট করা সঠিকভাবে পরিচালনা করে -
ActivityNavigator.applyPopAnimationsToPendingTransition
সঠিক পপ এক্সিট অ্যানিমেশন b/126237567 প্রয়োগ না করে একটি সমস্যা সমাধান করা হয়েছে - Safe Args দ্বারা জেনারেট করা Kotlin কোড এখন
R
ক্লাসের সাথে যুক্ত প্যাকেজ নামের মধ্যেin
এবংfun
মতো কোটলিন কীওয়ার্ডগুলিকে সঠিকভাবে এড়িয়ে যায়। b/126020455
সংস্করণ 1.0.0-rc01
21 ফেব্রুয়ারি, 2019
এটি নেভিগেশন এর 1.0.0 স্থিতিশীল প্রকাশের জন্য একটি রিলিজ প্রার্থী। এই রিলিজে একটি বাগ ফিক্স রয়েছে।
বাগ ফিক্স
- ফ্র্যাগমেন্টস এবং
singleTop
নেভিগেশন অপারেশন b/124294805 ব্যবহার করার সময় একটি সমস্যা সমাধান করা হয়েছে
সংস্করণ 1.0.0-beta02
ফেব্রুয়ারি 12, 2019
এই রিলিজে বেশ কিছু ছোটখাটো উন্নতি এবং গুরুত্বপূর্ণ বাগ সংশোধন করা হয়েছে।
নতুন বৈশিষ্ট
- আপনি এখন
reference
আর্গুমেন্টের জন্য একটিandroid:defaultValue
হিসাবে0
ব্যবহার করতে পারেন। b/124248602
আচরণ পরিবর্তন
- সঠিক ডিপ লিঙ্ক মিলগুলিকে এখন
.*
b/123969518
বাগ ফিক্স
-
popBackStack()
এবংnavigateUp
এখন সঠিকভাবেfalse
রিটার্ন করে যখন ব্যাক স্ট্যাকে শেষ গন্তব্য পপ করে,1.0.0-beta01
এ প্রবর্তিত একটি রিগ্রেশন ঠিক করে। b/123933201 - ন্যাভিগেশন এখন সংরক্ষিত ইনস্ট্যান্স স্টেট পুনরুদ্ধারের সময় সঠিকভাবে
ClassLoader
সেট করে,Navigator
সেভ করা অবস্থায় বাNavDestination
এ পাঠানো আর্গুমেন্টে কাস্টম ক্লাস ব্যবহার করার সময় সমস্যাগুলি এড়িয়ে যায়। b/123893858 - Safe Args জেনারেট করা NavArgs ক্লাসগুলি সংরক্ষিত ইনস্ট্যান্স স্টেট থেকে একটি
Parcelable[]
আর্গুমেন্ট পুনরুদ্ধার করার সময় আর ক্র্যাশ হয় না। b/123963545 - সেফ আর্গস এখন সঠিকভাবে অপ্রয়োজনীয় জেনারেট করা কোটলিন ক্লাস পরিষ্কার করে। b/124120883
সংস্করণ 1.0.0-beta01
ফেব্রুয়ারি 4, 2019
এটি নেভিগেশনের প্রথম বিটা রিলিজ; সামনের দিকে অগ্রসর হলে, নেভিগেশন API পরবর্তী সংস্করণ পর্যন্ত স্থিতিশীল থাকবে বলে আশা করা হচ্ছে যদি না কোনো জটিল সমস্যা না হয়। এই রিলিজে কিছু বাগ ফিক্স এবং আচরণ পরিবর্তন রয়েছে।
আচরণ পরিবর্তন
- ন্যাভিগেশন এখন নিশ্চিত করে যে আর্গুমেন্ট ডিফল্ট মান রানটাইমে এবং সেফ আর্গসের মাধ্যমে একইভাবে আচরণ করা হয়। ফলস্বরূপ, শুধুমাত্র একটি
app:argType="reference"
এর সাথে আর্গুমেন্টের ডিফল্ট মান পয়েন্ট থাকতে পারে অন্য রিসোর্সে (উদাহরণস্বরূপ,@color/colorPrimary
)। একটি ভিন্নapp:argType
নেভিগেশন XML পার্স করার সময় একটি ব্যতিক্রম হবে৷ b/123551990 - নিরাপদ Args এখন Android Gradle Plugin 3.3.0 aosp/888413 এর উপর নির্ভর করে
- নিরাপদ আর্গস এখন কোটলিন 1.3.20 aosp/888414 এর উপর নির্ভর করে
বাগ ফিক্স
- সেফ আর্গস এখন অ্যান্ড্রয়েড গ্রেডল প্লাগইনের সমস্ত সংস্করণে লাইব্রেরি এবং বৈশিষ্ট্য মডিউলগুলিতে ব্যবহার করা যেতে পারে। b/121304903
- একটি রিগ্রেশন স্থির করা হয়েছে যা একটি একক
popBackStack()
ক্রিয়াকলাপ এক সময়ে শুধুমাত্র একটি গন্তব্যের পরিবর্তে, ব্যাক স্ট্যাকের উপরের গন্তব্যের সমস্ত অনুলিপি পপ করার কারণ হবে৷ b/123552990 - একটি সমস্যা সমাধান করা হয়েছে যেখানে
FragmentNavigator
স্টেটটিNavController
এর স্টেটের সাথে ডিসিঙ্ক্রোনাইজ করবে, যার ফলে ব্যাক স্ট্যাক পুনরুদ্ধার করার চেষ্টা করার সময় একটিIllegalStateException
সৃষ্টি হবে। b/123803044 - অস্পষ্টতার সাথে ProGuard ব্যবহার করার সময়
NavigationUI
হ্যান্ডেল করা ব্যাক অ্যারো প্রদর্শিত হবে না এমন একটি সমস্যা সমাধান করা হয়েছে। b/123449431 - Safe Args দ্বারা জেনারেট করা কোডটি এখন একটি
app:argType
ফরম্যাটে একটি স্ট্যাটিক ইনার ক্লাসের দিকে নির্দেশ করে.OuterClass$InnerClass
ব্যবহার করে সঠিকভাবে পরিচালনা করে। b/123736741 - সেফ আর্গস দ্বারা জেনারেট করা জাভা কোড এখন বিশ্বব্যাপী ক্রিয়াকলাপ এবং গভীরভাবে নেস্ট করা গন্তব্যগুলিকে সঠিকভাবে পরিচালনা করে। b/123347762
সংস্করণ 1.0.0-alpha11
23 জানুয়ারী, 2019
এটি 1.0.0-alpha10
এর একটি হটফিক্স রিলিজ যা সেফ আর্গস-এর একটি সমস্যা সমাধান করে।
বাগ ফিক্স
- একটি সমস্যা সমাধান করে যেখানে Safe Args গ্লোবাল অ্যাকশনের সাথে সম্পর্কিত দিকনির্দেশ ক্লাস আমদানি করতে ব্যর্থ হবে। b/123307342
সংস্করণ 1.0.0-আলফা10
23 জানুয়ারী, 2019
জ্ঞাত সমস্যা
- Safe Args গ্লোবাল অ্যাকশনের সাথে যুক্ত দিকনির্দেশ শ্রেণী আমদানি করতে ব্যর্থ হয়। b/123307342
এই রিলিজে ব্রেকিং API পরিবর্তন রয়েছে; অনুগ্রহ করে নিচের ব্রেকিং চেঞ্জেস বিভাগটি দেখুন।
নতুন বৈশিষ্ট
- Kotlin ব্যবহারকারীরা এখন
by navArgs()
সম্পত্তি প্রতিনিধি ব্যবহার করতে পারেন অলসভাবে একটিActivity
বাFragment
একটি নিরাপদ Args জেনারেট করাNavArgs
ক্লাসের একটি রেফারেন্স পেতে। b/122603367 - সেফ আর্গস এখন আপনাকে
androidx.navigation.safeargs.kotlin
প্লাগইন প্রয়োগ করে Kotlin কোড তৈরি করতে দেয়। Kotlin কোড বিশেষভাবে Kotlin শুধুমাত্র মডিউলগুলির জন্য তৈরি করা হয়েছে, বিল্ডার প্যাটার্নের উপর ডিফল্ট আর্গুমেন্ট এবং অপরিবর্তনীয় ক্লাস ব্যবহার করে যা এখনও পূর্ববর্তীandroidx.navigation.safeargs
প্লাগইনের মাধ্যমে উপলব্ধ। b/110263087
আচরণ পরিবর্তন
- ম্যাচিং ডিপ লিঙ্কগুলি এখন সেই ডিপ লিঙ্কের দিকে পক্ষপাতিত্ব করে যার মধ্যে সবচেয়ে বেশি ম্যাচিং আর্গুমেন্ট রয়েছে৷ b/118393029
- একটি
NavController
এsetGraph()
কল করা এখন ব্যাক স্ট্যাক রিসেট করবে। b/111450672 - অজানা গভীর লিঙ্কগুলি আর একটি
IllegalStateException
নিক্ষেপ করে না, কিন্তু উপেক্ষা করা হয়, নেস্টেড বা একাধিকNavHostFragment
s-এর সাথে সমস্যাগুলি সমাধান করে৷ b/121340440
ব্রেকিং পরিবর্তন
- একটি কার্যকলাপে পপ অ্যানিমেশন প্রয়োগ করার জন্য
NavOptions.applyPopAnimationsToPendingTransition()
পদ্ধতিActivityNavigator
এ সরানো হয়েছে। b/122413117 - Safe Args এখন আর্গুমেন্ট ছাড়া অ্যাকশনের জন্য অভিন্ন ক্লাসের নকল করা এড়িয়ে যায়। জেনারেট করা NavDirections ক্লাসে কোন আর্গুমেন্ট পদ্ধতির জন্য রিটার্ন টাইপ এখন
NavDirections
। b/123233147 - Safe Args জেনারেট করা দিকনির্দেশ ক্লাসে আর কোনো পাবলিক কনস্ট্রাক্টর নেই - আপনার শুধুমাত্র জেনারেট করা স্ট্যাটিক পদ্ধতির সাথে ইন্টারঅ্যাক্ট করা উচিত। b/123031660
- Safe Args জেনারেট করা
NavDirections
ক্লাসে আর কোনো পাবলিক কনস্ট্রাক্টর নেই - সেগুলি শুধুমাত্র জেনারেট করা দিকনির্দেশ ক্লাসে স্ট্যাটিক পদ্ধতির মাধ্যমে তৈরি করা উচিত। b/122963206 -
NavDirections
'getArguments()
থেকে ফিরে আসাBundle
এখন@Nullable
এর পরিবর্তে@NonNull
হিসেবে চিহ্নিত করা হয়েছে। b/123243957
বাগ ফিক্স
-
NavDeepLinkBuilder
এখন অনন্যতা নির্ধারণ করতে আপনার পাস করা আর্গুমেন্টগুলি ব্যবহার করে একই গন্তব্যে একাধিক যুগপতPendingIntent
গুলি সঠিকভাবে পরিচালনা করে। b/120042732 - নেস্টেড
NavHostFragment
বা ব্যাক স্ট্যাকের সাথে অন্যান্য চাইল্ড ফ্র্যাগমেন্ট ব্যবহার করার সময়NavController
এখন সঠিকভাবেpopBackStack()
অপারেশন পরিচালনা করে। b/122770335 -
NavigationUI
এখন সঠিকভাবে আপ বোতামের বিষয়বস্তুর বিবরণ সেট করে। b/120395362 - Safe Args জেনারেট করা দিকনির্দেশ ক্লাসগুলি এখন সঠিকভাবে বিশ্বব্যাপী অ্যাকশনগুলি পরিচালনা করে যেগুলির একটি গন্তব্যের একটি অ্যাকশনের মতো একই আইডি রয়েছে৷ b/122962504
- Safe Args জেনারেট করা
NavDirections
ক্লাসে এখন সঠিকভাবে সমানhashCode()
মান আছে যখনequals()
সত্যে ফিরে আসবে। b/123043662 - আপনি যদি
NavHostFragment
এরFragmentManager
এ কাস্টমFragmentTransactions
করার চেষ্টা করেন তাহলেFragmentNavigator
এখন একটি ভাল ত্রুটির বার্তা ছুড়ে দেয়। আপনার সবসময়getChildFragmentManager()
ব্যবহার করা উচিত। b/112927148
সংস্করণ 1.0.0-alpha09
18 ডিসেম্বর, 2018
এই রিলিজে ব্রেকিং API পরিবর্তন রয়েছে; অনুগ্রহ করে নিচের ব্রেকিং চেঞ্জেস বিভাগটি দেখুন।
আমরা android.arch.navigation:navigation-testing
artifact-এর বিকাশ চালিয়ে না যাওয়া বেছে নিয়েছি। যদিও এটি NavController
এর অভ্যন্তরীণ পরীক্ষার জন্য সহায়ক বলে প্রমাণিত হয়েছে, আমরা দৃঢ়ভাবে বিকল্প পরীক্ষার কৌশলগুলির সুপারিশ করি, যেমন সঠিক navigate()
কলগুলি করা হচ্ছে তা যাচাই করার জন্য NavController
দৃষ্টান্তকে উপহাস করা। AndroidDevSummit 2018-এ একক ক্রিয়াকলাপের আলোচনায় এই পদ্ধতিটি বিশদভাবে আলোচনা করা হয়েছে এবং আমরা নেভিগেশনের সাথে পরীক্ষা করার জন্য বিশেষত অতিরিক্ত ডকুমেন্টেশন নিয়ে কাজ করব।
নতুন বৈশিষ্ট
-
menuCategory="secondary"
এর সাথেMenuItem
s যখনNavigationUI
পদ্ধতিতে ব্যবহার করা হয় তখন আর ব্যাক স্ট্যাক পপ করবে না। b/120104424 -
AppBarConfiguration
এখন আপনাকে একটি ফলব্যাকOnNavigateUpListener
ইনস্ট্যান্স সেট করতে দেয় যাnavController.navigateUp()
false
রিটার্ন করলে কল করা হবে। b/79993862 b/120690961
ব্রেকিং পরিবর্তন
- একটি
argType="reference"
এর সাথে একটি<argument>
ব্যবহার করার সময়, নেভিগেশন আর রেফারেন্সকে পার্স করে না, পরিবর্তে কাঁচা রিসোর্স আইডি প্রদান করে। b/111736515 -
onNavDestinationSelected()
এখন ডিফল্টরূপে আপনার নেভিগেশন গ্রাফের শুরুর গন্তব্যে ফিরে আসে, সেগুলিকেsetup
পদ্ধতির সাথে সামঞ্জস্যপূর্ণ করে। ব্যাক স্ট্যাকের পপিং এড়াতে আপনারMenuItem
এmenuCategory="secondary"
যোগ করুন। aosp/852869 - উৎপন্ন
Args
ক্লাসেরfromBundle()
পদ্ধতিগুলি এখন একটি বাতিলযোগ্যBundle
aosp/845616 এর পরিবর্তে একটি নন-নালBundle
গ্রহণ করে
বাগ ফিক্স
- আর্গুমেন্টগুলি এখন ডিপ লিঙ্কগুলি থেকে সঠিকভাবে পার্স করা হয়েছে সর্বদা স্ট্রিং b/110273284 এর পরিবর্তে সঠিক
argType
হিসাবে - নেভিগেশন এখন সঠিকভাবে তার পাবলিক রিসোর্স b/121059552 রপ্তানি করে
- Safe Args এখন Android Gradle Plugin 3.4 Canary 4 এবং উচ্চতর b/119662045 এর সাথে সামঞ্জস্যপূর্ণ
সংস্করণ 1.0.0-alpha08
ডিসেম্বর 6, 2018
এই রিলিজে ব্রেকিং API পরিবর্তন রয়েছে; অনুগ্রহ করে নিচের ব্রেকিং চেঞ্জেস বিভাগটি দেখুন।
নতুন বৈশিষ্ট
- গন্তব্য লেবেল, যখন
NavigationUI
পদ্ধতিতে ব্যবহার করা হয়, তখন এখন স্বয়ংক্রিয়ভাবে আপনারandroid:label
এ{argName}
দৃষ্টান্তগুলিকে সঠিক যুক্তি b/80267266 দিয়ে প্রতিস্থাপন করবে - নেভিগেশন এখন সাপোর্ট লাইব্রেরির উপর নির্ভর করে 28.0.0 b/120293333
ব্রেকিং পরিবর্তন
-
OnNavigatedListener
নাম পরিবর্তন করেOnDestinationChangedListener
b/118670572 করা হয়েছে -
OnDestinationChangedListener
এখন আর্গুমেন্টেরBundle
পাস করে aosp/837142 -
app:clearTask
এবংapp:launchDocument
বৈশিষ্ট্য এবং তাদের সংশ্লিষ্ট পদ্ধতিগুলি সরানো হয়েছে। আপনার ব্যাক স্ট্যাক থেকে সমস্ত গন্তব্য সরাতে আপনার গ্রাফের রুট সহapp:popUpTo
ব্যবহার করুন। b/119628354 -
ActivityNavigator.Extras
এখন একটিBuilder
প্যাটার্ন ব্যবহার করে এবং যেকোনোIntent.FLAG_ACTIVITY_
flags aosp/828140 সেট করার ক্ষমতা যোগ করে -
NavController.onHandleDeepLink
নাম পরিবর্তন করেhandleDeepLink
aosp/836063 করা হয়েছে - অনেক ক্লাস এবং পদ্ধতি সাবক্লাসিংয়ের জন্য নয়, যেমন
NavOptions
,NavInflater
,NavDeepLinkBuilder
, এবংAppBarConfiguration
,final
করা হয়েছে aosp/835681 - অবহেলিত
NavHostFragment.setGraph()
পদ্ধতি aosp/835684 সরানো হয়েছে - অপ্রচলিত
NavigationUI.navigateUp(DrawerLayout, NavController)
পদ্ধতি সরানো হয়েছে। aosp/835684 - ফ্র্যাগমেন্ট তৈরিকে
FragmentNavigator
স্থানান্তরিত করা হয়েছে, এটি একটিFragmentFactory
ফ্র্যাগমেন্ট সৃষ্টিকে অর্পণ করা সহজ করে তোলে। b/119054429 -
NavGraphNavigator
এর কনস্ট্রাক্টর আর একটিContext
aosp/835340 নেয় না - NavigatorProvider এখন একটি ইন্টারফেসের পরিবর্তে একটি ক্লাস।
getNavigatorProvider()
দ্বারা ফিরে আসাNavigatorProvider
এর কার্যকারিতা পরিবর্তন করেনি। aosp/830660 -
NavDestination.navigate()
সরানো হয়েছে। পরিবর্তেNavigator
navigate()
কল করুন। aosp/830663 -
Navigator
উল্লেখযোগ্য রিফ্যাক্টরিং,OnNavigatorNavigatedListener
এর প্রয়োজনীয়তা দূর করে এবং এর পরিবর্তেnavigate
করে যেNavDestination
এ নেভিগেট করা হয়েছিল সেটি ফেরত দেওয়া। -
Navigator
দৃষ্টান্তগুলি আরNavController
এ পপ ইভেন্ট পাঠাতে পারে না। ব্যাক বোতাম টিপতে এবংnavController.popBackStack()
কল করতে একটিOnBackPressedCallback
ব্যবহার করার কথা বিবেচনা করুন। aosp/833716
বাগ ফিক্স
-
popUpTo
এখন ধারাবাহিকভাবে কাজ করে যখন গন্তব্য একটি<navigation>
উপাদান b/116831650 - নেস্টেড গ্রাফ b/118713731 b/113611083 b/113346925 b/113305559 ব্যবহার করার সময় একটি
IllegalArgumentException
এর ফলে অনেক বাগ সংশোধন করা -
<activity>
গন্তব্যেরdataPattern
বৈশিষ্ট্য এখনtoString()
b/120161365 কল করে নন-স্ট্রিং আর্গুমেন্ট থেকে আর্গুমেন্ট তৈরি করবে
নিরাপদ Args
- Safe Args Enum মান সহ সিরিয়ালাইজেবল অবজেক্ট সমর্থন করে। Enum প্রকারগুলি ক্লাসের নাম ছাড়াই enum আক্ষরিক ব্যবহার করে একটি ডিফল্ট মান সেট করতে পারে (যেমন
app:defaultValue="READ"
) b/111316353 - সেফ আর্গস সমস্ত সমর্থিত প্রকারের অ্যারে সমর্থন করে b/111487504
- সেফ আর্গস এখন রিসোর্স ডিরেক্টরির সাবফোল্ডারকে উপেক্ষা করে b/117893516
- Safe Args যেখানে উপযুক্ত b/117145301
@Override
টীকা যোগ করে
সংস্করণ 1.0.0-alpha07
অক্টোবর 29, 2018
নতুন বৈশিষ্ট
- একটি নতুন AppBarConfiguration ক্লাস আপনাকে কোন গন্তব্যগুলিকে শীর্ষ-স্তরের গন্তব্য হিসাবে বিবেচনা করা হবে তা কাস্টমাইজ করতে দেয়৷ বিস্তারিত জানার জন্য আপডেট করা ডকুমেন্টেশন দেখুন। b/117333663
- আপনি এখন আপনার গ্রাফ b/110300470 এর প্রারম্ভিক গন্তব্যে আর্গুমেন্ট পাস করতে পারেন
- ডিপ লিঙ্কগুলি এখন পিরিয়ড, হাইফেন এবং প্লাস চিহ্ন সহ কাস্টম স্কিম সমর্থন করে। b/112806402
ব্রেকিং পরিবর্তন
-
navigation-testing-ktx
মডিউলটিnavigation-testing artifact
ভাঁজ করা হয়েছে এবং আর প্রকাশ করা হবে না। -
navigation-testing
আর্টিফ্যাক্টের এখন কোটলিন স্ট্যান্ডার্ড লাইব্রেরির উপর নির্ভরশীলতা রয়েছে। কোটলিন কনভেনশনের সাথে আরও সামঞ্জস্যপূর্ণ হওয়ার জন্য API পরিবর্তন করা হয়েছে, তবে আপনি জাভাতে লেখা পরীক্ষার জন্য এটি ব্যবহার করা চালিয়ে যেতে পারেন। - মেটাডেটা ম্যানিফেস্ট নিবন্ধিত নেভিগেশন গ্রাফ আর সমর্থিত নয়। b/118355937
- অ্যাকশন আর <activity> গন্তব্যে সংযুক্ত করা যাবে না। aosp/785539
বাগ ফিক্স
- ডিপ লিঙ্কগুলি এখন সঠিকভাবে কোয়েরি প্যারামিটার পার্স করে। b/110057514
- কার্যকলাপের গন্তব্য এখন সঠিকভাবে সমস্ত প্রবেশ এবং প্রস্থান অ্যানিমেশন প্রয়োগ করে। b/117145284
- কাস্টম নেভিগেটর ব্যবহার করার সময় কনফিগারেশন পরিবর্তনের পরে ঘটে যাওয়া স্থির ক্র্যাশ। b/110763345
নিরাপদ Args
- সেফ আর্গস এখন অ্যান্ড্রয়েড গ্রেডল প্লাগইন 3.2.1 এর উপর একটি নির্দিষ্ট নির্ভরতা রয়েছে। b/113167627
- অভ্যন্তরীণ ক্লাসের জন্য এখন নির্দেশনা তৈরি করা যেতে পারে। b/117407555
- একটি <অন্তর্ভুক্ত> গ্রাফের দিকনির্দেশ তৈরি করার সাথে একটি সমস্যা সমাধান করা হয়েছে। b/116542123
সংস্করণ 1.0.0-alpha06
সেপ্টেম্বর 20, 2018
নতুন বৈশিষ্ট
- ফ্র্যাগমেন্ট এবং অ্যাক্টিভিটি গন্তব্যের জন্য শেয়ার্ড এলিমেন্ট ট্রানজিশন এখন b/79665225 সমর্থিত। আরও তথ্যের জন্য, নেভিগেশন আর্কিটেকচার কম্পোনেন্টের সাথে নেভিগেশন বাস্তবায়ন দেখুন
-
NavigationView
একটি আইটেম নির্বাচন করা এখন যেকোনও নিচের শীট b/112158843 ধারণ করে বন্ধ করে দেবে
এপিআই পরিবর্তন
- ব্রেকিং চেঞ্জ: নেভিগেটর
navigate()
পদ্ধতিতে এখন একটিNavigator.Extras
প্যারামিটার লাগে। - NavController এর
getGraph()
পদ্ধতি এখনNonNull
b/112243286
বাগ ফিক্স
-
NavigationUI.setupWithNavController()
পৃথক গন্তব্য b/111961977 থেকে ভিউ ব্যবহার করলে আর ভিউ ফাঁস হয় না - নেভিগেটর
onSaveState()
এখন শুধুমাত্র একবার b/112627079 বলা হয়
নিরাপদ Args
- ন্যাভিগেশন গন্তব্য দিকনির্দেশের ক্লাসগুলি এখন তাদের পিতামাতার দিকনির্দেশ ক্লাস প্রসারিত করে যদি এটি বিদ্যমান থাকে b/79871405
- নির্দেশাবলী এবং Args ক্লাসে এখন একটি দরকারী
toString()
বাস্তবায়ন b/111843389 আছে
সংস্করণ 1.0.0-alpha05
আগস্ট 10, 2018
বাগ ফিক্স
- ভুল ব্যাকস্ট্যাক আচরণের কারণ একটি বাগ ঠিক করুন। b/111907708
- জেনারেটেড Args ক্লাসের
equals()
এ একটি বাগ ঠিক করুন। b/111450897 - Safe Args এ একটি বিল্ড ব্যর্থতা ঠিক করুন। b/109409713
- রিসোর্স আইডেন্টিফায়ার থেকে জাভা নাম b/111602491 এ একটি রূপান্তর ঠিক করুন
- Safe Args প্লাগইনে শূন্যতা সম্পর্কে ত্রুটি বার্তা ঠিক করুন।
- অনুপস্থিত শূন্যতা টীকা যোগ করুন।
সংস্করণ 1.0.0-alpha04
জুলাই 19, 2018
নেভিগেশন 1.0.0-alpha04
এবং সংশ্লিষ্ট Safe Args gradle প্লাগইনে অনেকগুলি API পরিবর্তন, আচরণ পরিবর্তন এবং বাগ ফিক্স রয়েছে।
API / আচরণ পরিবর্তন
- NavHostFragment সর্বদা বর্তমান ফ্র্যাগমেন্টকে প্রাথমিক নেভিগেশন ফ্র্যাগমেন্ট হিসাবে সেট করবে, নিশ্চিত করবে যে বাইরের NavController পপ করার আগে চাইল্ড ফ্র্যাগমেন্ট ম্যানেজার পপ করা হয়েছে b/111345778
নিরাপদ Args
- ব্রেকিং চেঞ্জ:
app:type
পরিবর্তন করা হয়েছেapp:argType
এ অন্য লাইব্রেরির সাথে বিরোধ এড়াতে যেমন ConstraintLayout 2.0.0-alpha1 b/111110548 - Safe Args থেকে ত্রুটি বার্তা এখন b/111534438 ক্লিকযোগ্য
- Args ক্লাস এখন নিশ্চিত করে যে
NonNull
বৈশিষ্ট্যগুলি আসলে নাল b/111451769 নয় - NavDirections এবং Args জেনারেট করা ক্লাস b/111455455 b/111455456 এ অতিরিক্ত
NonNull
টীকা যোগ করা হয়েছে
বাগ ফিক্স
- একটি ফ্র্যাগমেন্ট গন্তব্য b/111515685 এর সাথে গভীর লিঙ্ক করার পরে সিস্টেম ব্যাক বোতামের সাথে একটি সমস্যা সমাধান করা হয়েছে
সংস্করণ 1.0.0-alpha03
জুলাই 12, 2018
নেভিগেশন 1.0.0-alpha03
এবং সংশ্লিষ্ট Safe Args gradle প্লাগইনে অনেকগুলি API পরিবর্তন, আচরণের পরিবর্তন এবং বাগ ফিক্স রয়েছে।
API / আচরণ পরিবর্তন
- টুলবারের জন্য একটি NavigationUI.setupWithNavController পদ্ধতি b/109868820 যোগ করা হয়েছে
- CollapsingToolbarLayout-এর জন্য একটি NavigationUI.setupWithNavController পদ্ধতি b/110887183 যোগ করা হয়েছে
- popBackStack() এখন মিথ্যা ফেরত দেয় যখন ব্যাক স্ট্যাক খালি থাকে বা যখন প্রদত্ত গন্তব্য আইডি ব্যাক স্ট্যাকের মধ্যে থাকে না b/110893637
- FragmentNavigator এখন নেভিগেশন অপারেশন উপেক্ষা করে FragmentManager স্টেট সেভ করার পরে, "onSaveInstanceState এর পরে এই ক্রিয়াটি সম্পাদন করতে পারবে না" ব্যতিক্রমগুলি এড়িয়ে যায় b/110987825
নিরাপদ Args
- ব্রেকিং চেঞ্জ: অ্যাকশন এবং আর্গুমেন্টের নামের অ-আলফানিউমেরিক অক্ষরগুলি সংশ্লিষ্ট NavDirections পদ্ধতির নামগুলিতে উটের আবরণ দ্বারা প্রতিস্থাপিত হবে
- যেমন
DemoController.index
সেট হয়ে যাবেsetDemoControllerIndex
b/79995048 - যেমন
action_show_settings
হয়ে যাবেactionShowSettings
b/79642240
- যেমন
- ব্রেকিং পরিবর্তন: আর্গুমেন্ট এখন ডিফল্টরূপে নন-নাল হিসেবে বিবেচিত হয়। স্ট্রিং এবং পার্সেলেবল আর্গুমেন্টে নাল মান অনুমোদন করতে,
app:nullable="true"
b/79642307 যোগ করুন - আপনি এখন "123L" b/79563966 আকারে ডিফল্ট মান সহ
app:type="long"
ব্যবহার করতে পারেন -
app:type
এর জন্য একটি সম্পূর্ণ যোগ্য শ্রেণীর নাম ব্যবহার করে, পার্সেলযোগ্য আর্গুমেন্টগুলি এখন সমর্থিত। সমর্থিত একমাত্র ডিফল্ট মান হল"@null"
b/79563966 - Args ক্লাস এখন
equals()
এবংhashCode()
b/79642246 প্রয়োগ করে - সেফ আর্গস প্লাগইন এখন লাইব্রেরি প্রকল্প b/80036553 এ প্রয়োগ করা যেতে পারে
- সেফ আর্গস প্লাগইনটি এখন b/110011752 বৈশিষ্ট্য প্রকল্পগুলিতে প্রয়োগ করা যেতে পারে
বাগ ফিক্স
- ফ্র্যাগমেন্ট লাইফসাইকেল পদ্ধতি b/109916080 চলাকালীন নেভিগেট করার সময় সমস্যার সমাধান করা হয়েছে
- একাধিকবার নেস্টেড গ্রাফগুলিতে নেভিগেট করার সময় সমস্যাগুলি সমাধান করা হয়েছে b/110178671
- গ্রাফ b/109909461- এ প্রথম গন্তব্যের সাথে
setPopUpTo
ব্যবহার করার সময় সমস্যার সমাধান করা হয়েছে - স্থির সমস্যা যেখানে সমস্ত
app:defaultValue
ভ্যালু মান স্ট্রিং b/110710788 হিসাবে পাস করা হচ্ছে - aapt2 এন্ড্রয়েড গ্রেডল প্লাগইন 3.2 বিটা 01 এর সাথে বান্ডেল করা এখন প্রতিটি
android:name
অ্যাট্রিবিউটের নেভিগেশন এক্সএমএল ফাইলে রাখার নিয়ম যুক্ত করেছে b/79874119 - ডিফল্ট ফ্র্যাগমেন্টনেভিগেটর b/110900142 প্রতিস্থাপন করার সময় স্থির মেমরি লিক
সংস্করণ 1.0.0-alpha02
জুন 7, 2018
আচরণ পরিবর্তন
FragmentNavigator
এখনsetReorderingAllowed(true)
ব্যবহার করে। b/109826220নেভিগেশন এখন ইউআরএলডিকোড আর্গুমেন্ট ডিপ লিঙ্ক ইউআরএল থেকে পার্স করে। b/79982454
বাগ ফিক্স
ফ্র্যাগমেন্ট লাইফসাইকেল পদ্ধতি থেকে নেভিগেট কল করার সময় একটি
IllegalStateException
স্থির করা হয়েছে। b/79632233অ্যানিমেশন ব্যবহার করার সময় ফ্লিকারিং ঠিক করার জন্য নেভিগেশন এখন সাপোর্ট লাইব্রেরি 27.1.1 এর উপর নির্ভর করে। b/80160903
একটি শিশু খণ্ড হিসাবে defaultNavHost="true" ব্যবহার করার সময় একটি
IllegalArgumentException
সংশোধন করা হয়েছে। b/79656847NavDeepLinkBuilder ব্যবহার করার সময় একটি
StackOverflowError
সংশোধন করা হয়েছে। b/109653065একটি নেস্টেড গ্রাফে ফিরে নেভিগেট করার সময় একটি
IllegalArgumentException
সংশোধন করা হয়েছে। b/80453447launchSingleTop
ব্যবহার করার সময় ওভারল্যাপিং ফ্র্যাগমেন্টগুলির সাথে একটি সমস্যা সমাধান করা হয়েছে। b/79407969নেভিগেশন এখন নেস্টেড গ্রাফের জন্য সঠিক সিন্থেটিক ব্যাক স্ট্যাক তৈরি করে। b/79734195
একটি
MenuItem
হিসাবে নেস্টেড গ্রাফ ব্যবহার করার সময় NavigationUI এখন সঠিক আইটেমটি হাইলাইট করবে। b/109675998
এপিআই পরিবর্তন
ক্রিয়াকলাপের জন্য
clearTask
অ্যাট্রিবিউট এবংNavOptions
এ সংশ্লিষ্ট API অবচয় করা হয়েছে। b/80338878NavOptions
এ অ্যাকশনের জন্যlaunchDocument
অ্যাট্রিবিউট এবং সংশ্লিষ্ট API অবচয় করা হয়েছে। b/109806636
সংস্করণ 1.0.0-alpha01
8 মে, 2018
ন্যাভিগেশন অ্যাপ-মধ্যস্থ নেভিগেশন নির্মাণের জন্য একটি কাঠামো প্রদান করে। এই প্রাথমিক প্রকাশ হল 1.0.0-alpha01
।