নেভিগেশন

ন্যাভিগেশন হল একটি অ্যান্ড্রয়েড অ্যাপ্লিকেশনের মধ্যে 'গন্তব্যের' মধ্যে নেভিগেট করার জন্য একটি কাঠামো যা একটি সামঞ্জস্যপূর্ণ API প্রদান করে যে গন্তব্যগুলিকে ফ্র্যাগমেন্টস, অ্যাক্টিভিটিস বা অন্যান্য উপাদান হিসাবে প্রয়োগ করা হয়।
সর্বশেষ আপডেট স্থিতিশীল রিলিজ প্রার্থী মুক্তি বিটা রিলিজ আলফা রিলিজ
13 নভেম্বর, 2024 2.8.4 - - 2.9.0-আলফা03

নির্ভরতা ঘোষণা করা

নেভিগেশনের উপর নির্ভরতা যোগ করতে, আপনাকে অবশ্যই আপনার প্রকল্পে Google Maven সংগ্রহস্থল যোগ করতে হবে। আরও তথ্যের জন্য Google এর Maven সংগ্রহস্থল পড়ুন।

আপনার অ্যাপ বা মডিউলের জন্য build.gradle ফাইলে আপনার প্রয়োজনীয় আর্টিফ্যাক্টগুলির জন্য নির্ভরতা যোগ করুন:

গ্রোভি

plugins {
  // Kotlin serialization plugin for type safe routes and navigation arguments
  id 'org.jetbrains.kotlin.plugin.serialization' version '2.0.21'
}
  
dependencies {
  def nav_version = "2.8.4"

  // Jetpack Compose Integration
  implementation "androidx.navigation:navigation-compose:$nav_version"

  // Views/Fragments Integration
  implementation "androidx.navigation:navigation-fragment:$nav_version"
  implementation "androidx.navigation:navigation-ui:$nav_version"

  // Feature module support for Fragments
  implementation "androidx.navigation:navigation-dynamic-features-fragment:$nav_version"

  // Testing Navigation
  androidTestImplementation "androidx.navigation:navigation-testing:$nav_version"

  // JSON serialization library, works with the Kotlin serialization plugin.
  implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3"
}

কোটলিন

plugins {
  // Kotlin serialization plugin for type safe routes and navigation arguments
  kotlin("plugin.serialization") version "2.0.21"
}

dependencies {
  val nav_version = "2.8.4"

  // Jetpack Compose integration
  implementation("androidx.navigation:navigation-compose:$nav_version")

  // Views/Fragments integration
  implementation("androidx.navigation:navigation-fragment:$nav_version")
  implementation("androidx.navigation:navigation-ui:$nav_version")

  // Feature module support for Fragments
  implementation("androidx.navigation:navigation-dynamic-features-fragment:$nav_version")

  // Testing Navigation
  androidTestImplementation("androidx.navigation:navigation-testing:$nav_version")

  // JSON serialization library, works with the Kotlin serialization plugin
  implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3")
}

নিরাপদ Args

আপনার প্রোজেক্টে Safe Args যোগ করতে, আপনার শীর্ষ স্তরের build.gradle ফাইলে নিম্নলিখিত classpath অন্তর্ভুক্ত করুন:

গ্রোভি

buildscript {
    repositories {
        google()
    }
    dependencies {
        def nav_version = "2.8.4"
        classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version"
    }
}

কোটলিন

buildscript {
    repositories {
        google()
    }
    dependencies {
        val nav_version = "2.8.4"
        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.9

সংস্করণ 2.9.0-alpha03

13 নভেম্বর, 2024

androidx.navigation:navigation-*:2.9.0-alpha03 প্রকাশিত হয়েছে। সংস্করণ 2.9.0-alpha03-এ এই কমিট রয়েছে।

নতুন বৈশিষ্ট্য

  • ন্যাভিগেশন টাইপ সেফটি এখন রুট বা রুটের আর্গুমেন্ট টাইপ হিসেবে মান ক্লাসকে সমর্থন করে। ( I9344a , b/374347483 )

বাগ ফিক্স

  • একটি ConcurrentModificationException স্থির করা হয়েছে যেটি ঘটতে পারে যখন একটি NavBackStackEntry এর সাথে সংযুক্ত একটি LifecycleObserver ব্যাক স্ট্যাকে একটি পরিবর্তন ট্রিগার করে যখন হোস্ট LifecycleOwner যেমন অ্যাক্টিভিটি বা ফ্র্যাগমেন্ট তার জীবনচক্র অবস্থা পরিবর্তন করে। ( IA9494 )

সংস্করণ 2.9.0-alpha02

30 অক্টোবর, 2024

androidx.navigation:navigation-*:2.9.0-alpha02 প্রকাশিত হয়েছে। সংস্করণ 2.9.0-alpha02-এ এই কমিট রয়েছে।

বাহ্যিক অবদান

  • নতুন সাধারণ NavController.handleDeepLink(request: NavDeepLinkRequest) পদ্ধতি। ধন্যবাদ Konstantin Tskhovrebov! ( I3e228 )

সংস্করণ 2.9.0-alpha01

অক্টোবর 16, 2024

androidx.navigation:navigation-*:2.9.0-alpha01 প্রকাশিত হয়েছে। সংস্করণ 2.9.0-alpha01-এ এই কমিট রয়েছে।

নতুন বৈশিষ্ট্য

  • কাস্টম নেভিগেটররা এখন তাদের গন্তব্যগুলিকে SupportingPane ইন্টারফেস প্রয়োগ করে চিহ্নিত করতে পারে যা NavController কে নির্দেশ করে যে এই গন্তব্যগুলি অন্যান্য গন্তব্যগুলির পাশাপাশি দেখানো হবে৷ এই ইন্টারফেস ব্যবহার করে, একাধিক গন্তব্য একই সময়ে RESUMED যেতে পারে, উদাহরণস্বরূপ। ( Id5559 )
  • ন্যাভিগেশন 2.8.3 থেকে: @Serializable এর সাথে সঠিকভাবে টীকাযুক্ত নয় এমন যেকোনো প্রকার-নিরাপদ রুট সনাক্ত করতে সাহায্য করার জন্য navigation-common , navigation-runtime এবং navigation-compose মডিউলগুলির জন্য নতুন লিন্ট চেক যোগ করা হয়েছে। এই চেকটি সমস্ত NavGraphBuilder এবং NavDeepLinkBuilder এক্সটেনশন ফাংশনে প্রয়োগ করা হয়। ( I4a259 , I95402 , Ie601a , Id8c6e , I28bda , b/362725816 )
  • ন্যাভিগেশন 2.8.3 থেকে: @Keep সাথে সঠিকভাবে টীকাযুক্ত নয় এমন Enum আর্গুমেন্টের সাথে যেকোনো প্রকার-নিরাপদ রুট সনাক্ত করতে সাহায্য করার জন্য navigation-common , navigation-runtime এবং navigation-compose মডিউলগুলির জন্য নতুন লিন্ট চেক যোগ করা হয়েছে। এই চেকটি সমস্ত NavGraphBuilder এবং NavDeepLinkBuilder এক্সটেনশন ফাংশনে প্রয়োগ করা হয়। ( I4a259 , I95402 , Ie601a , Id8c6e , I2b46f , b/358687142 )

আচরণ পরিবর্তন

  • একটি NavController ব্যবহার করার প্রয়াস যা পূর্বে DESTROYED হয়েছে তা এখন একটি IllegalStateException সৃষ্টি করবে। ( I520da , b/369616172 )

বাগ ফিক্স

  • মিনিফাইড বিল্ডগুলিতে Enum ক্লাস মুছে ফেলার ক্ষেত্রে @Keep টীকা ব্যবহার করার পরামর্শ দেওয়ার জন্য Enum ক্লাস আপডেট করুন। ( I90e79 , b/358137294 )

পরিচিত সমস্যা

  • Navigation 2.8.* এ যোগ করা নতুন লিন্ট নিয়মে একটি সমস্যা রয়েছে যা Android Gradle Plugin 8.4+ এর সাথে লিন্ট চালানোর চেষ্টা করার সময় একটি Obsolete custom lint check ত্রুটি সৃষ্টি করে। ( b/368070326 , b/371463741 )

সংস্করণ 2.8

সংস্করণ 2.8.4

13 নভেম্বর, 2024

androidx.navigation:navigation-*:2.8.4 প্রকাশিত হয়েছে। সংস্করণ 2.8.4-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • ন্যাভিগেশন 2.9.0-alpha03 থেকে : নেভিগেশন টাইপ নিরাপত্তা এখন রুট বা রুটের আর্গুমেন্ট টাইপ হিসাবে মান শ্রেণীকে সমর্থন করে ( I9344a , b/374347483 )

বাগ ফিক্স

  • নেভিগেশন 2.9.0-alpha01 থেকে: একটি NavController ব্যবহার করার চেষ্টা করা যা পূর্বে DESTROYED হয়েছে এখন একটি IllegalStateException সৃষ্টি করবে। ( I520da , b/369616172 )

সংস্করণ 2.8.3

অক্টোবর 16, 2024

androidx.navigation:navigation-*:2.8.3 প্রকাশিত হয়েছে। সংস্করণ 2.8.3-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • @Serializable এর সাথে সঠিকভাবে টীকাযুক্ত নয় এমন যেকোনো প্রকার-নিরাপদ রুট সনাক্ত করতে সাহায্য করার জন্য navigation-common , navigation-runtime এবং navigation-compose মডিউলগুলির জন্য নতুন লিন্ট চেক যোগ করা হয়েছে। এই চেকটি সমস্ত NavGraphBuilder এবং NavDeepLinkBuilder এক্সটেনশন ফাংশনে প্রয়োগ করা হয়। ( I4a259 , I95402 , Ie601a , Id8c6e , I28bda , b/362725816 )
  • navigation-common , navigation-runtime এবং navigation-compose মডিউলগুলির জন্য নতুন লিন্ট চেক যুক্ত করা হয়েছে যাতে @Keep সাথে সঠিকভাবে টীকা করা হয়নি এমন Enum আর্গুমেন্টের সাথে যেকোন প্রকার-নিরাপদ রুট সনাক্ত করতে সহায়তা করে। এই চেকটি সমস্ত NavGraphBuilder এবং NavDeepLinkBuilder এক্সটেনশন ফাংশনে প্রয়োগ করা হয়। ( I4a259 , I95402 , Ie601a , Id8c6e , I2b46f , b/358687142 )

বাগ ফিক্স

  • একটি সমস্যা সমাধান করা হয়েছে যেখানে Navigation 2.8.* এ যুক্ত করা নতুন লিন্ট নিয়মগুলি অ্যান্ড্রয়েড গ্রেডল প্লাগইন 8.4+ এর সাথে লিন্ট চালানোর চেষ্টা করার সময় একটি Obsolete custom lint check ত্রুটির কারণ হবে৷ ( I1be3d , b/368070326 , b/371463741 )

পরিচিত সমস্যা

  • লিন্ট 16 (এজিপি 8.7) বা উচ্চতর দিয়ে লিন্ট চালানোর চেষ্টা করার সময় নেভিগেশন লিন্ট একটি অপ্রচলিত কাস্টম লিন্ট চেক ত্রুটি নিক্ষেপ করবে। ( b/371926651 )

সংস্করণ 2.8.2

2 অক্টোবর, 2024

androidx.navigation:navigation-*:2.8.2 প্রকাশিত হয়েছে। সংস্করণ 2.8.2-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • ন্যাভিগেশন টাইপ সেফটি এখন সিরিয়ালাইজেবল ক্লাসগুলিকে সমর্থন করে যার মধ্যে একটি Double , Double? , DoubleArray , DoubleArray? , List<Double> , এবং List<Double>? কোনো কাস্টম NavType প্রয়োজন ছাড়া। ( I570eb , Ibc4c0 , I37461 , I5bed4 , b/359245753 )

বাগ ফিক্স

  • যখন নেভিগেশন একটি NavType এ একটি রুটের আর্গুমেন্ট ম্যাপ করতে ব্যর্থ হয় তার জন্য ত্রুটির বার্তাটি উন্নত করা হয়েছে, নতুন ত্রুটি বার্তাটিতে আর্গুমেন্টের নাম, আর্গুমেন্টের সম্পূর্ণ যোগ্য নাম এবং রুটের সম্পূর্ণ যোগ্য নাম থাকবে৷ ( Id8416 , b/346264232 )

সংস্করণ 2.8.1

সেপ্টেম্বর 18, 2024

androidx.navigation:navigation-*:2.8.1 প্রকাশিত হয়েছে। সংস্করণ 2.8.1-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • popBackStack ফাংশনের ব্যবহার নিশ্চিত করতে একটি নতুন লিন্ট নিয়ম যোগ করা হয়েছে যা টাইপ-সেফ API ব্যবহার করে popBackStack চেষ্টা করার সময় একটি রিফাইড ক্লাস টাইপ নেয়। ( Ief161 , b/358095343 )

বাগ ফিক্স

  • ন্যাভিগেশনের জন্য এখন প্রয়োজন যে একটি NavGraph এর startDestination পাস করা রুটে সমস্ত প্রয়োজনীয় আর্গুমেন্টের মান রয়েছে, যার মধ্যে এমন আর্গুমেন্ট রয়েছে যেগুলি অ-নূলযোগ্য এবং কোনও ডিফল্ট মান নেই। ( I18e74 , b/362594265 )
  • ন্যাভিগেশন সেফ আর্গস নন-নালযোগ্য স্ট্রিংগুলির জন্য সমর্থন যোগ করেছে যেমন "নাল" মানগুলিকে পার্স করা হবে এবং বান্ডেলে সংরক্ষণ করা হবে। এটি বিদ্যমান আচরণ থেকে প্রস্থান করে যেখানে "নাল" মানগুলিকে একটি নাল বস্তুতে পার্স করা হয়। এই পরিবর্তনটি শুধুমাত্র অ-শূন্য স্ট্রিং প্রকারের ক্ষেত্রে প্রযোজ্য। বাতিলযোগ্য স্ট্রিং অপরিবর্তিত থাকে। ( I08b4a , b/348936238 )
  • গন্তব্যে স্পষ্টভাবে যোগ করা একটি গভীর লিঙ্কের মাধ্যমে ব্যতীত একটি NavDestination আর ডিপ লিঙ্ক করা যাবে না। এর মানে হল যে আপনি শুধুমাত্র একটি গন্তব্যের রুটে নেভিগেট করতে পারবেন নেভিগেট ফাংশন ওভারলোড দিয়ে যা একটি স্ট্রিং রুট নেয়। এটি একটি দুর্বলতা সংশোধন করে যা একটি সম্ভাব্য সুরক্ষিত গন্তব্যের সাথে গভীর লিঙ্ক করা সম্ভব করে তোলে। ( Ie30e6 )

নির্ভরতা আপডেট

  • নেভিগেশন সেফ আর্গস এখন Kotlin 2.X এর পরিবর্তে Kotlin 1.9.24 এর উপর নির্ভর করে, নিশ্চিত করে যে ডেভেলপারদের আপডেট করতে বাধ্য করা হয় না। ( a4129a )
  • নেভিগেশন রচনা এখন রচনা 1.7.2 উপর নির্ভর করে।

সংস্করণ 2.8.0

4 সেপ্টেম্বর, 2024

androidx.navigation:navigation-*:2.8.0 প্রকাশিত হয়েছে। সংস্করণ 2.8.0-এ এই কমিট রয়েছে।

2.7.0 থেকে গুরুত্বপূর্ণ পরিবর্তন

ন্যাভিগেশন কোটলিন ডিএসএল টাইপ-সেফটি

  • ন্যাভিগেশন এখন কোটলিন সিরিয়ালাইজেশন ব্যবহার করে কোটলিন ডিএসএল (নেভিগেশন কম্পোজ দ্বারা ব্যবহৃত) এর জন্য টাইপ-নিরাপত্তা প্রদান করে যাতে আপনি টাইপ নিরাপদ বস্তু এবং ডেটা ক্লাসের মাধ্যমে আপনার নেভিগেশন গ্রাফে গন্তব্যগুলি সংজ্ঞায়িত করতে পারেন:
    // 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)
        }
    }

আরও তথ্যের জন্য নেভিগেশন কম্পোজ মিট টাইপ সেফটি ব্লগ পোস্ট দেখুন।

নেভিগেশন রচনা ভবিষ্যদ্বাণীমূলক ফিরে

  • ন্যাভিগেশন কম্পোজ এখন কম্পোজ-অ্যানিমেশন থেকে নতুন SeekableTransitionState API-এর মাধ্যমে প্রেডিকটিভ ইন-অ্যাপ-এর জন্য সমর্থন প্রদান করে। এটি আপনাকে সম্পূর্ণ অঙ্গভঙ্গির মাধ্যমে লেনদেন করার বা বাতিল করার সিদ্ধান্ত নেওয়ার আগে আপনার কাস্টম ট্রানজিশনের সাথে পূর্ববর্তী গন্তব্য দেখতে পিছনের অঙ্গভঙ্গি ব্যবহার করতে দেয়।

নেভিগেশন ফ্র্যাগমেন্ট রচনাযোগ্য

  • একটি নতুন navigation-fragment-compose আর্টিফ্যাক্ট যোগ করা হয়েছে যাতে NavHostFragment এর একটি ComposableNavHostFragment বিকল্প রয়েছে যা আপনাকে আপনার নেভিগেশন XML ফাইলগুলিতে কম্পোজযোগ্য গন্তব্য যোগ করতে দেয়। প্রতিটি composable গন্তব্য অবশ্যই একটি শীর্ষ-স্তরের হিসাবে প্রকাশ করতে হবে, কোন যুক্তি নেই @Composable পদ্ধতি যার সম্পূর্ণ যোগ্য নাম প্রতিটি গন্তব্যে android:name বৈশিষ্ট্য হিসাবে ব্যবহৃত হয়। এই গন্তব্যগুলির মধ্যে একটিতে নেভিগেট করার সময়, সংমিশ্রণযোগ্য বিষয়বস্তু প্রদর্শনের জন্য একটি ধারণকৃত খণ্ড তৈরি করা হয়।
  // 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" />

অন্যান্য পরিবর্তন

  • নেভিগেশন রচনা এখন রচনা 1.7.0 এর উপর নির্ভর করে।
  • নেভিগেশন এখন একটি নতুন CollectionNavType<T> ক্লাস প্রদান করে, যা সংগ্রহ-ভিত্তিক আর্গুমেন্ট যেমন তালিকা, অ্যারে, ম্যাপের জন্য NavType<T> এর একটি সাবক্লাস। সমস্ত ডিফল্ট NavType অ্যারে ( IntArrayType , LongArrayType , FloatArrayType , BoolArrayType , এবং StringArrayType ) এখন এই নতুন ক্লাস থেকে উত্তরাধিকার সূত্রে প্রাপ্ত।
  • NavType এখন Int, স্ট্রিং, বুলিয়ান, ফ্লোট এবং লং তালিকার জন্য অন্তর্নির্মিত সমর্থন রয়েছে।

সংস্করণ 2.8.0-rc01

আগস্ট 21, 2024

androidx.navigation:navigation-*:2.8.0-rc01 প্রকাশিত হয়েছে। সংস্করণ 2.8.0-rc01-এ এই কমিট রয়েছে।

বাগ ফিক্স

  • টাইপ নিরাপদ আর্গুমেন্ট হিসাবে শীর্ষ স্তরের Enum ক্লাসে পাস করার সময় নেভিগেশন ক্র্যাশ ঠিক করুন। ( I0ba76 , b/358137294 )
  • নেভিগেশন 2.8 এখন SDK 34 এর সাথে সঠিকভাবে কাজ করে এবং বাকি AndroidX লাইব্রেরির সাথে 2.9 রিলিজ না হওয়া পর্যন্ত SDK 35-এ অদলবদল করবে না। ( b/358798728 )

সংস্করণ 2.8.0-beta07

7 আগস্ট, 2024

androidx.navigation:navigation-*:2.8.0-beta07 প্রকাশিত হয়েছে। সংস্করণ 2.8.0-beta07-এ এই কমিট রয়েছে।

পরিচিত সমস্যা

  • b/358137294 এর কারণে, শুধুমাত্র অন্য ক্লাসে নেস্ট করা Enums বাক্সের বাইরে সমর্থিত। শীর্ষ স্তরের Enums পরবর্তী প্রকাশে সমর্থিত হবে.

বাগ ফিক্স

  • ডুপ্লিকেট বা ভাগ করা গন্তব্যে নেভিগেট করার সময়, নেভিগেশন গ্রাফের বর্তমান অবস্থান থেকে সবচেয়ে কাছের মিলে যাওয়া গন্তব্যে যাওয়াকে অগ্রাধিকার দেবে। ( Ic89a4 , b/352006850 )
  • নিরাপদ আর্গসে নেভিগেশন এখন একটি নতুন NavType.EnumType যোগ করেছে। এর মানে Enum ধরনের আর কাস্টম NavType s এর প্রয়োজন নেই। মনে রাখবেন যে Enum এর SerialName অবশ্যই ডিফল্ট সম্পূর্ণরূপে যোগ্য নাম হতে হবে। ( I66d22 , b/346475493 )
  • নিরাপদ আর্গসে নেভিগেশন Int? , Long? , Float? , Boolean? , এবং Enum<*>? . ( I32d13 , I1c580 , Ifba66 , I978b0 , Ide076 , b/351994237 )
  • NavGraph এর startDestination এখন ডিফল্ট আর্গুমেন্ট মান ব্যবহার করবে যদি NavGraph এ পাস করা startDestination রুট ঠিক startDestination.route এর সমান হয়। ( I13762 , b/354046047 )

সংস্করণ 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

এই কার্যকারিতা টাইপ নিরাপদ বস্তু এবং ডেটা ক্লাসের মাধ্যমে আপনার নেভিগেশন গ্রাফে গন্তব্যগুলি সংজ্ঞায়িত করার অনুমতি দেওয়ার জন্য কোটলিন সিরিয়ালাইজেশন ব্যবহার করে:

  // 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 , I83b , I832 , I831 I20a14 , 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 )

নির্ভরতা আপডেট

সংস্করণ 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 ক্লাসে সম্পূর্ণরূপে এনক্যাপসুলেট করা যায়। প্রদত্ত StringUri.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 এর মাধ্যমে টুকরো যুক্ত করা উচিত।
  • অ্যাপ্লিকেশনটিতে স্থানধারক হিসাবে সঠিক স্ট্রিং ${applicationId} using ব্যবহার করার সময় app:data এবং app:dataPattern বৈশিষ্ট্যগুলি একটি নেভিগেশন এক্সএমএল ফাইলের ক্রিয়াকলাপ উপাদানগুলিতে বৈশিষ্ট্যগুলি, স্থানধারক স্বয়ংক্রিয়ভাবে মুদ্রাস্ফীতির উপর প্রসঙ্গের packageName দিয়ে পূরণ করা হবে।
  • FragmentNavigator এখন NavBackStackEntries নেভিগেট এবং পপিং করার সময় ট্রানজিশন এপিআই ব্যবহার করে। এর অর্থ হ'ল NavBackStackEntry Lifecycle এখন তাদের চূড়ান্ত Lifecycle.State সরিয়ে নেওয়ার আগে খণ্ডের বিশেষ প্রভাবগুলি প্রবেশ ও প্রস্থান করার জন্য অপেক্ষা করবে।
  • DialogFragmentNavigator এখন NavBackStackEntries নেভিগেট এবং পপিং করার সময় ট্রানজিশন এপিআই ব্যবহার করে। এর অর্থ হ'ল NavBackStackEntry Lifecycle এখন নিজেকে DESTROYED আগে যাওয়ার আগে DialogFragment Lifecycle DESTROYED হয়ে যাওয়ার জন্য অপেক্ষা করবে।
  • NavHostFragment এখন আপনাকে NavHostFragment FragmentManager সাথে সংযুক্ত হওয়ার সাথে সাথে কেবল onCreate() পরে নয়, বরং NavController পুনরুদ্ধার করতে দেয়।
  • গতিশীল বৈশিষ্ট্য মডিউলগুলির জন্য নেভিগেশনের সমর্থন এখন গ্রানুলার প্লে বৈশিষ্ট্য বিতরণ লাইব্রেরির উপর নির্ভর করে।
  • নেভিগেশন নিরাপদ আরগগুলি এখন অ্যান্ড্রয়েড গ্রেডল প্লাগইন সংস্করণ 7.3.0 এর উপর নির্ভর করে। এর অর্থ এটি এখন কেবল 7.3.0+ সংস্করণগুলির সাথে সামঞ্জস্যপূর্ণ।

2.5.0 সাল থেকে নেভিগেশনউইতে গুরুত্বপূর্ণ পরিবর্তন

  • কোনও নেভিগেশন গ্রাফের আইডিটি AppBarConfiguration (যেমন একটি Menu দিয়ে) পাস করার সময়, NavigationUI এখন কেবল শীর্ষ স্তরের গন্তব্য হিসাবে প্রতিটি গন্তব্যকে ভুলভাবে চিহ্নিত করার পরিবর্তে কেবল সেই নেভিগেশন গ্রাফের শুরু গন্তব্যটিকে শীর্ষ স্তরের গন্তব্য হিসাবে বিবেচনা করে। একটি পৃথক গন্তব্য আইডি পাস করার আচরণ অপরিবর্তিত। এই একই কার্যকারিতাটি AppBarConfiguration নতুন isTopLevelDestination ফাংশনের মাধ্যমে আপনার নিজস্ব কোডে উপলব্ধ।
  • শীর্ষ অ্যাপ্লিকেশন বারের সাথে কাজ করার জন্য NavigationUI setupWithNavController ইন্টিগ্রেশনগুলি এখন আপনার অ্যান্ড্রয়েডে পাওয়া ReferenceType আর্গুমেন্টগুলির জন্য R.string মানগুলি পার্স করবে android:label
  • NavigationUI এখন লগগুলি সরবরাহ করে যখন এটি কোনও নির্বাচিত MenuItem মাধ্যমে নেভিগেট করতে ব্যর্থ হয়।

সংস্করণ 2.6.0-আরসি 02

24 মে, 2023

androidx.navigation:navigation-*:2.6.0-rc02 প্রকাশিত হয়েছে। সংস্করণ 2.6.0-RC02 এ এই কমিটগুলি রয়েছে।

বাগ ফিক্স

  • টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো popUpTo টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো ( আইইবি 8 ডি 4 , বি/281726455 )

সংস্করণ 2.6.0-আরসি 01

10 মে, 2023

androidx.navigation:navigation-*:2.6.0-rc01 প্রকাশিত হয়েছে। সংস্করণ 2.6.0-RC01 এর মধ্যে এই কমিট রয়েছে।

বাগ ফিক্স

  • টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো onResume() popUpTo টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো IllegalStateException ( I21884 , বি/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() এপিআইয়ের মাধ্যমে টুকরো যুক্ত করা উচিত। ( I6d38e )
  • যখন এমন একটি navigate থাকে যা একটি এন্ট্রি এবং একটি popBackStack যুক্ত করে যা এটি একই ফ্রেমে সরিয়ে দেয়, তখন পিছনের স্ট্যাকের ফলস্বরূপ শীর্ষ এন্ট্রি এখন ধারাবাহিকভাবে এটি পুনরায় RESUMED Lifecycle.State ফিরিয়ে আনবে। ( আইডি 8067 , বি/276495952 )

সংস্করণ 2.6.0-Alpha09

5 এপ্রিল, 2023

androidx.navigation:navigation-*:2.6.0-alpha09 প্রকাশিত হয়েছে। সংস্করণ 2.6.0-ALPHA09 এর মধ্যে এই কমিট রয়েছে।

বাগ ফিক্স

  • অবৈধ রুটের জন্য স্থির চেকগুলি এমনভাবে যে যদি কোনও NavDestination অ-নাকের NavArgument থাকে তবে এই গন্তব্যটির রুটে অবশ্যই অ্যাগের জন্য স্থানধারক থাকতে হবে না নামকরণযোগ্য NavArgument মতো। ( আইসি 62 বিএফ , বি/274697949 )
  • Action/MimeType ভিত্তিতে ডিপলিংক নেভিগেশনগুলি এখন ব্যর্থ হবে যদি নেভিগেশন অপারেশনটি NavDestination দ্বারা প্রয়োজনীয় একটি অ-নাকের NavArgument অনুপস্থিত থাকে যা Action/MimeType সাথে মেলে। ( আইবিএফএ 17 , বি/271777424 )
  • যখন NavController পূর্ববর্তী গ্রাফের মতো একই রুট এবং গন্তব্যগুলির সাথে একটি গ্রাফ সেট করে, এটি এখন তার বর্তমান গ্রাফ নোডগুলি এবং তার পিছনের স্ট্যাক গন্তব্যগুলি নতুন উদাহরণগুলির সাথে সঠিকভাবে প্রতিস্থাপন করে। নেভিগেশন রচনায় রাষ্ট্র সংরক্ষণ না করে onLaunchSingleTop ব্যবহার করার সময় এটি ক্র্যাশটি ঠিক করে। এটি এমন একটি ত্রুটিও ঠিক করে যেখানে মূল গ্রাফ বিল্ডস এবং ভুল ব্যাক স্ট্যাকের সাথে সম্পর্কিত গন্তব্যগুলিতে নেভিগেট করা। ( I5bc58 , খ/275258161 , বি/275407804 )

সংস্করণ 2.6.0-Alpha08

22 মার্চ, 2023

androidx.navigation:navigation-*:2.6.0-alpha08 প্রকাশিত হয়েছে। সংস্করণ 2.6.0-ALPHA08 এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • NavHostFragment এখন আপনাকে NavHostFragment FragmentManager সাথে সংযুক্ত হওয়ার সাথে সাথে কেবল onCreate() পরে নয়, বরং NavController পুনরুদ্ধার করতে দেয়। ( আইসি 6382 , বি/220186282 )

বাগ ফিক্স

  • একটি নেস্টেড গ্রাফ পপ করার সময় একটি NullPointerException স্থির করে যা একটি অ-অযোগ্য যুক্তি অন্তর্ভুক্ত করে। ( 6B3581 , বি/249988437 )
  • popUpTo সাথে নেভিগেট করার পরে সিস্টেমটি ব্যবহার করার সময়, NavController অবস্থাটি সঠিক প্রবেশে পপ করবে। ( I3a8ec , খ/270447657 )
  • ব্যাক স্ট্যাকটি সিস্টেম ব্যাক বা popBackStack() মাধ্যমে পপ করা হলে এবং লেনদেনটি খণ্ডের জন্য প্রভাবগুলি ব্যবহার করে কিনা তা পপ করা হলে FragmentNavigator এখন সঠিকভাবে পপ করবে। ( I81bdf )
  • নেভিগেশন ব্যবহার না করে FragmentNavigator FragmentManager টুকরো টুকরো যুক্ত করা আর ক্রাশের কারণ হবে না। ( বি 17204 , বি/274167493 )

নির্ভরতা আপডেট

সংস্করণ 2.6.0-Alpha07

8 মার্চ, 2023

androidx.navigation:navigation-*:2.6.0-alpha07 প্রকাশিত হয়েছে। সংস্করণ 2.6.0-ALPHA07 এর মধ্যে এই কমিট রয়েছে।

বাগ ফিক্স

  • getBackStackEntry , popBackStack , clearBackStack এপিআই ভেরিয়েন্টগুলি যা এখন রুটগুলি গ্রহণ করে তা বাতিলযোগ্য আর্গুমেন্ট এবং নালযোগ্য ক্যোয়ারী প্যারামগুলির সাথে রুটের নিদর্শনগুলি গ্রহণ করে ( আই 22294 , বি/269302500 )
  • NavController কাছ থেকে clearBackStack() কল করা এমন একটি সমস্যা স্থির করেছে যেখানে ক্লিয়ারড ব্যাক স্ট্যাকের সাথে যুক্ত খণ্ড পরিচালকের সংরক্ষিত রাষ্ট্রটি সাফ করবে না। ( আইসি 1 সিসিই , বি/271190202 )
  • ২.6.০-আলফা 06-তে একটি রিগ্রেশন স্থির করে যা ট্যাবগুলির মধ্যে সিস্টেম ব্যাক ব্যবহার করার সময় BottomNavigationView ভুল MenuItem হাইলাইট করা হয়েছিল। ( I634f6 , বি/270447657 )
  • 2.6.0-Alpha06 এ স্থির রিগ্রেশন যা Animation এস ব্যবহার করার সময় NavBackStackEntry গুলি পুনরায় শুরু করা অবস্থায় সরানো না ঘটায়। ( আইবি 3589 , বি/269646882 )

সংস্করণ 2.6.0-Alpha06

22 ফেব্রুয়ারি, 2023

androidx.navigation:navigation-*:2.6.0-alpha06 প্রকাশিত হয়েছে। সংস্করণ 2.6.0-ALPHA06 এর মধ্যে এই কমিট রয়েছে।

নতুন বৈশিষ্ট্য

  • NavHost সাথে কোনও কমপোজেবলের পূর্বরূপ দেখার সময়, এটি এখন ডিফল্টরূপে নবগ্রাফের startDestination প্রদর্শন করবে। ( I2b89f )

এপিআই পরিবর্তন

  • সমস্ত NavController navigate ওভারলোডগুলি এখন মূল থ্রেডে কল করা হয়েছে তা নিশ্চিত করার জন্য এখন @MainThread সাথে টীকা দেওয়া হয়েছে। ( I2c0b0 , বি/263427111 )

বাগ ফিক্স

  • গতিশীল খণ্ড নেভিগেশন ব্যবহার করার সময় নেভিগেট করার চেষ্টা করার সময় একটি ক্র্যাশ স্থির করে। ( I3ee29 , খ/268360479 )
  • স্থির বাগ যেখানে সিস্টেম ব্যাক বোতামের মাধ্যমে অন্য খণ্ডে নেভিগেট করা সঠিক নির্বাচিত আইটেমটিতে নীচের বারটি আপডেট করে না ( আইএফ 559 এফ , বি/269044426 )

পরিচিত সমস্যা

  • টুকরো টুকরো দিয়ে নেভিগেশন ব্যবহার করার সময়, Animation এপিআই ব্যবহার করার সময় NavBackStackEntry লাইফসাইকেলটি RESUMED পৌঁছাতে ব্যর্থ হয়। ( খ/269646882 )
  • টুকরো টুকরো দিয়ে নেভিগেশন ব্যবহার করার সময় এবং BottomNavigation সাথে নেভিগেট করার সময়, আপনি যদি একাধিক এন্ট্রি সহ একটি পিছনের স্ট্যাক পুনরুদ্ধার করার চেষ্টা করেন তবে BottomMenuItem সঠিকভাবে আপডেট করা হয়নি। ( বি/270447657 )
  • টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো Lifecycle টুকরো টুকরো টুকরো NavBackStackEntry টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো DESTROYED টুকরো টুকরো টুকরো টুকরো DESTROYED টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো ( বি/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) এখন সমস্ত আর্গুমেন্ট সহ আংশিক বা সম্পূর্ণরূপে পূরণ করা রুটগুলি সমর্থন করে। নোট করুন যে আর্গুমেন্টগুলি প্রবেশের যুক্তিগুলির সাথে সঠিক মিল হতে হবে। ( আইবিডি 28 , আইসি 678 সি , আই 3 বি 37 বি , বি/257514373 )
  • FragmentNavigator এখন NavBackStackEntries নেভিগেট এবং পপিং করার সময় ট্রানজিশন এপিআই ব্যবহার করে। এর অর্থ হ'ল NavBackStackEntry Lifecycle এখন তাদের চূড়ান্ত Lifecycle.State সরিয়ে নেওয়ার আগে খণ্ডের বিশেষ প্রভাবগুলি প্রবেশ ও প্রস্থান করার জন্য অপেক্ষা করবে। ( I3cb19 , খ/238686802 )
  • DialogFragmentNavigator এখন NavBackStackEntries নেভিগেট এবং পপিং করার সময় ট্রানজিশন এপিআই ব্যবহার করে। এর অর্থ হ'ল NavBackStackEntry Lifecycle এখন নিজেকে DESTROYED আগে যাওয়ার আগে DialogFragment Lifecycle DESTROYED হয়ে যাওয়ার জন্য অপেক্ষা করবে। ( I53ee5 , খ/261213893 )

এপিআই পরিবর্তন

  • NavigatorState এখন Navigator এসকে NavBackStackEntries মধ্যবর্তী Lifecycle.State এস -তে সরানোর অনুমতি দেওয়ার জন্য prepareForTransition এপিআই সরবরাহ করে। ( আই 42 সি 21 , বি/238686802 )
  • আপনি এখন backstack সম্পত্তির মাধ্যমে কোনও NavGraphNavigator বা ComposeNavigator সাথে যুক্ত ব্যাক স্ট্যাকটি অ্যাক্সেস করতে পারেন। ComposeNavigator এখন একটি NavBackStackEntry চিহ্নিত করতে onTransitionComplete() কলব্যাকটিও প্রকাশ করে যা একটি নেভিগেট বা popBackStack অপারেশন সম্পূর্ণ হিসাবে সম্পাদন করেছে। ( I02062 , i718db , খ/257519195 )

বাগ ফিক্স

  • push/popWithTransition এপিআই ব্যবহার করার সময় নেভিগেটর রাজ্য এখন কোনও অপ-অপ-অপ-ওপ করবে এবং এন্ট্রি ইতিমধ্যে পরিচালনা করা হচ্ছে। ( আইএডিবিএফএ , বি/261213893 )
  • একটি নেস্টেড NavGraph সাথে launchSingleTop ব্যবহার করার সময় মূল গন্তব্য থেকে শুরু করে তার startDestination পর্যন্ত সমস্ত গন্তব্যগুলি কেবল ব্যাকস্ট্যাকের শীর্ষে সঠিকভাবে যুক্ত করা হবে। ( আইডি 4 বিইএ , বি/253256629 )
  • launchSingleTop পতাকাটি সত্য হিসাবে সেট করে একই গন্তব্যে নেভিগেট করার সময় নেভিগেশন এখন DialogFragment উদাহরণটি সঠিকভাবে প্রতিস্থাপন করবে। ( আই 45 বি 5 এ , বি/149572817 )
  • নেভিগেশন সাফের্গগুলি আর 19 টি অক্ষর দীর্ঘ যুক্তিযুক্ত যুক্তি ব্যবহার করার সময় আর সংকলন ত্রুটির কারণ হবে না। ( ID60BC , B/257110095 )

সংস্করণ 2.6.0-Alpha04

9 নভেম্বর, 2022

androidx.navigation:navigation-*:2.6.0-alpha04 প্রকাশিত হয়েছে। সংস্করণ 2.6.0-ALPHA04 এ এই কমিটস রয়েছে।

নতুন বৈশিষ্ট্য

  • NavType কাস্টম সাবক্লাসগুলি এখন serializeAsValue একটি স্ট্রিংয়ে সিরিয়ালাইজ করতে ওভাররাইড করতে পারে, যা উভয় সিরিয়ালাইজেশন এবং ডিজেরিয়ালাইজেশন ( parseValue মাধ্যমে) উভয়কেই NavType ক্লাসে সম্পূর্ণরূপে আবদ্ধ করার অনুমতি দেয়। StringType এখন প্রদত্ত String Uri.encode কল করতে এই পদ্ধতিটিকে ওভাররাইড করে। ( আই 5213 , বি/247637434 )
  • NavigationUI এখন লগগুলি সরবরাহ করে যখন এটি কোনও নির্বাচিত MenuItem মাধ্যমে নেভিগেট করতে ব্যর্থ হয়। ( I2af5a , খ/247730357 )

বাগ ফিক্স

  • নেভিগেশন ডিপ লিঙ্কগুলি এখন গ্রাফ ইনিশিয়ালাইজেশনের পরিবর্তে অলসভাবে পার্স করা হয়েছে যা শুরুতে অ্যাপের কার্যকারিতা উন্নত করতে পারে। ( Iab0ab )
  • নাল ডিফল্ট যুক্তিগুলির সাথে গভীর সংযোগের পরে নেভিগেট করার কারণে স্থির ক্র্যাশ ঘটে। ( I51c24 , খ/243183636 )

নির্ভরতা আপডেট

  • গতিশীল বৈশিষ্ট্য মডিউলগুলির জন্য নেভিগেশনের সমর্থন এখন গ্রানুলার প্লে বৈশিষ্ট্য বিতরণ লাইব্রেরির উপর নির্ভর করে। ( আইবি 4 ডিডিসি )
  • নেভিগেশন নিরাপদ আরগগুলি এখন অ্যান্ড্রয়েড গ্রেডল প্লাগইন সংস্করণ 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 সৃষ্টি করবে না। এটি এখন কেবল রচনাটি এড়িয়ে যাবে। ( আইইবি 46 ই , বি/253299416 )
  • নেভিগেশন থেকে 2.5.3 : স্থির একটি সমস্যা যেখানে সংরক্ষণ করা রচনাটি স্টেট (যেমন, rememberSaveable ব্যবহারগুলি) ভুলে যাওয়া এবং অপসারণ করা হচ্ছে না যখন কোনও গন্তব্য পিছনের স্ট্যাকটি বন্ধ করে দেওয়া হয়েছিল। ( I64949 )

নির্ভরতা আপডেট

সংস্করণ 2.6.0-Alpha02

5 অক্টোবর, 2022

androidx.navigation:navigation-*:2.6.0-alpha02 প্রকাশিত হয়েছে। সংস্করণ 2.6.0-ALPHA02 এর মধ্যে এই কমিট রয়েছে।

আচরণ পরিবর্তন

  • কোনও নেভিগেশন গ্রাফের আইডিটি AppBarConfiguration (যেমন একটি Menu দিয়ে) পাস করার সময়, NavigationUI এখন কেবল শীর্ষ স্তরের গন্তব্য হিসাবে প্রতিটি গন্তব্যকে ভুলভাবে চিহ্নিত করার পরিবর্তে কেবল সেই নেভিগেশন গ্রাফের শুরু গন্তব্যটিকে শীর্ষ স্তরের গন্তব্য হিসাবে বিবেচনা করে। একটি পৃথক গন্তব্য আইডি পাস করার আচরণ অপরিবর্তিত। এই একই কার্যকারিতাটি AppBarConfiguration নতুন isTopLevelDestination ফাংশনের মাধ্যমে আপনার নিজস্ব কোডে উপলব্ধ। ( Ie936e , খ/238496771 )

বাগ ফিক্স

  • navigation:navigation-fragment উপাদান এখন খণ্ড সংস্করণ 1.5.2 উপর নির্ভর করে। ( I00ba4 )
  • একটি ডায়ালগের মতো FloatingWindow গন্তব্যে নেভিগেট করার সময় নির্বাচিত মেনু আইটেমটি আর আপডেট করা হবে না। ( I4cde8 , খ/240308330 )

সংস্করণ 2.6.0-Alpha01

7 সেপ্টেম্বর, 2022

androidx.navigation:navigation-*:2.6.0-alpha01 প্রকাশিত হয়েছে। সংস্করণ 2.6.0-ALPHA01 এর মধ্যে এই কমিট রয়েছে।

নতুন বৈশিষ্ট্য

  • শীর্ষ অ্যাপ্লিকেশন বারের সাথে কাজ করার জন্য NavigationUI setupWithNavController ইন্টিগ্রেশনগুলি এখন আপনার অ্যান্ড্রয়েডে পাওয়া ReferenceType আর্গুমেন্টগুলির জন্য R.string মানগুলি পার্স করবে android:label । ( I5f803 , বি/167959935 )
  • NavDeepLink এখন অ্যারেগুলির জন্য ডিফল্ট মানগুলিকে সমর্থন করে, যা বারবার ক্যোয়ারী প্যারামগুলির জন্য সমর্থন দেয় যা আর্গুমেন্টের অ্যারে টাইপটিতে মানচিত্র তৈরি করে। NavType এখন একটি ডিফল্ট পদ্ধতি অন্তর্ভুক্ত রয়েছে যা দুটি পার্সড মান একত্রিত করতে ওভাররাইড করা যেতে পারে। ( ID68C3 , খ/209977108 )
  • অ্যাপ্লিকেশনটিতে স্থানধারক হিসাবে সঠিক স্ট্রিং ${applicationId} using ব্যবহার করার সময় app:data এবং app:dataPattern বৈশিষ্ট্যগুলি একটি নেভিগেশন এক্সএমএল ফাইলের ক্রিয়াকলাপ উপাদানগুলিতে বৈশিষ্ট্যগুলি, স্থানধারক স্বয়ংক্রিয়ভাবে মুদ্রাস্ফীতির উপর প্রসঙ্গের packageName দিয়ে পূরণ করা হবে। ( আইএএবিডিই , বি/234223561 )
  • navDeepLink কোটলিন ডিএসএল ব্যবহার করে একটি খালি NavDeepLink তৈরি করার চেষ্টা করার ফলে এখন একটি লিন্ট সতর্কতার ফলস্বরূপ ইঙ্গিত দেওয়া হয়েছে যে একটি গভীর লিঙ্কের জন্য একটি ইউআরআই, ক্রিয়া এবং/অথবা মিমেটাইপ বৈধ হওয়ার প্রয়োজন। ( I08d2f , খ/154038883 )

এপিআই পরিবর্তন

  • অ্যান্ড্রয়েড আকারে যুক্তি সহ ডায়নামিক লেবেলগুলি পার্সে নতুন NavDestination এক্সটেনশন ফাংশন যুক্ত করা হয়েছে android:label="{arg}" স্ট্রিংয়ে। তাদের স্ট্রিং মানগুলিতে R.string মানগুলি পার্স করে ReferenceType যুক্তি সমর্থন করে। ( I07d89 , বি/236269380 )

আচরণ পরিবর্তন

  • নাভব্যাকস্ট্যাকেন্ট্রির arguments এবং arguments একটি OnDestinationChangedListener চ্যাঞ্জেডলিস্টেনারে পাস করা এখন আপনি গন্তব্যে নেভিগেট করার সময় তৈরি করা অপরিবর্তনীয় যুক্তিগুলির একটি অনুলিপি এখন। এর অর্থ এই বান্ডিলগুলিতে যে কোনও পরিবর্তন করা হয়েছে তা arguments বা অন্যান্য OnDestinationChangedListener দৃষ্টান্তগুলিতে পরবর্তী অ্যাক্সেসগুলিতে প্রতিফলিত হবে না। ( I676f5 )

বাগ ফিক্স

  • নেভিগেশন থেকে 2.5.2 : গতিশীল নেভিগেশন এখন তাদের কাছে নেভিগেট করার আগে অন্যান্য মডিউলগুলি থেকে ক্রিয়াকলাপের গন্তব্যগুলি ইনস্টল করার জন্য সঠিকভাবে চেষ্টা করে। ( আইএ 2 সি 16 , বি/240292838 )
  • নেভিগেশন থেকে 2.5.2 থেকে: নেভিগেশন এখন একই গন্তব্যে নেভিগেট করার সময় এবং launchSingleTop পতাকাটি সত্যে সেট করার সময় খণ্ডিত উদাহরণটি সঠিকভাবে প্রতিস্থাপন করবে। ( I5a2f1 , খ/237374580 )
  • নেভিগেশন থেকে 2.5.2 থেকে: ডাবল নেস্টেড গ্রাফে নেভিগেট করার কারণে স্থির IllegalStateException যা একটি নতুন পপড প্রারম্ভিক গন্তব্য সহ পিতামাতাকে ভাগ করে দেয়। ( I9f7cb , খ/243778589 )

সংস্করণ 2.5

সংস্করণ 2.5.3

24 অক্টোবর, 2022

androidx.navigation:navigation-*:2.5.3 প্রকাশিত হয়েছে। সংস্করণ 2.5.3 এ এই কমিটস রয়েছে।

বাগ ফিক্স

  • Crossfade রচনা করার জন্য যখন কোনও গন্তব্য উপলব্ধ না থাকে তখন NavHost আর কোনও NoSuchElementException সৃষ্টি করবে না। এটি এখন কেবল রচনাটি এড়িয়ে যাবে। ( আইইবি 46 ই , বি/253299416 )
  • একটি সমস্যা স্থির করা হয়েছে যেখানে সংরক্ষণ করা রচনাটি স্টেট (যেমন, rememberSaveable ব্যবহারগুলি) ভুলে যাওয়া এবং সরানো হচ্ছে না যখন কোনও গন্তব্য পিছনের স্ট্যাকটি বন্ধ করে দেওয়া হয়েছিল। ( I64949 )

সংস্করণ 2.5.2

7 সেপ্টেম্বর, 2022

androidx.navigation:navigation-*:2.5.2 প্রকাশিত হয়েছে। সংস্করণ 2.5.2 এ এই কমিটস রয়েছে।

বাগ ফিক্স

  • ডায়নামিক নেভিগেশন এখন সঠিকভাবে তাদের কাছে নেভিগেট করার আগে অন্যান্য মডিউলগুলি থেকে ক্রিয়াকলাপের গন্তব্যগুলি ইনস্টল করার চেষ্টা করে। ( আইএ 2 সি 16 , বি/240292838 )
  • একই গন্তব্যে নেভিগেট করার সময় এবং launchSingleTop পতাকাটি সত্যে সেট করার সময় নেভিগেশন এখন খণ্ডিত উদাহরণটি সঠিকভাবে প্রতিস্থাপন করবে। ( I5a2f1 , খ/237374580 )
  • একটি ডাবল নেস্টেড গ্রাফে নেভিগেট করার কারণে স্থির IllegalStateException যা একটি নতুন পপড প্রারম্ভিক গন্তব্য সহ পিতামাতাকে ভাগ করে দেয়। ( I9f7cb , খ/243778589 )

নির্ভরতা আপডেট

সংস্করণ 2.5.1

জুলাই 27, 2022

androidx.navigation:navigation-*:2.5.1 প্রকাশিত হয়েছে। সংস্করণ 2.5.1 এ এই কমিটস রয়েছে।

বাগ ফিক্স

  • Navigation Safe Args কোনও Bundle সংরক্ষণ করা কাস্টম আর্গুমেন্ট প্রকারগুলি ব্যবহার করার সময় উত্পন্ন শ্রেণিতে অবমূল্যায়নের সতর্কতা সৃষ্টি করবে না। ( আইডি 86 এড , বি/237725966 )

নির্ভরতা আপডেট

সংস্করণ 2.5.0

জুন 29, 2022

androidx.navigation:navigation-*:2.5.0 প্রকাশিত হয়েছে। সংস্করণ 2.5.0 এ এই কমিটস রয়েছে।

2.4.0 সাল থেকে গুরুত্বপূর্ণ পরিবর্তন

  • ক্রিয়েটিওনেক্সট্রাস ইন্টিগ্রেশন - Navigation এখন একটি স্টেটলেস ViewModelProvider.Factory CreationExtras করার ক্ষমতা রাখে 2.5.0

নেভিগেশন সাফের্গস

  • Navigation Safe Args 7.0 এর আগে এজিপি সংস্করণগুলির জন্য সামঞ্জস্যতা হ্রাস করে 7.0.4 এর উপর নির্ভর করতে Android Gradle Plugin নির্ভরতা আপগ্রেড করেছে।
  • নেমস্পেস বিল্ড.গ্র্যাডল অ্যাট্রিবিউট অ্যাপ্লিকেশন আইডের পরিবর্তে ব্যবহার করার জন্য সমর্থন যুক্ত করুন।

অন্যান্য পরিবর্তন

  • visibleEntries এপিআই আর পরীক্ষামূলক নয় এবং NavController অনুসারে বর্তমানে গন্তব্য দৃশ্যমান সমস্ত এন্ট্রি পুনরুদ্ধার করার জন্য একটি ফাংশন সরবরাহ করে।

সংস্করণ 2.5.0-আরসি 02

15 জুন, 2022

androidx.navigation:navigation-*:2.5.0-rc02 প্রকাশিত হয়েছে। সংস্করণ 2.5.0-আরসি 02 এ এই কমিটগুলি রয়েছে।

বাগ ফিক্স

  • নেভিগেশন রচনা NavHost ব্যবহার করার সময় নীচের গন্তব্যগুলির মধ্যে দ্রুত স্যুইচিংয়ের কারণে একটি ক্র্যাশ স্থির করে। ( I3979a , খ/234054916 )
  • কোনও applicationId উপস্থিত না থাকায় বা applicationId এবং নেমস্পেসের মধ্যে যখন আলাদা হয় না এমন কোনও applicationIdSuffix এবং নেমস্পেস ব্যবহার করার সময় Navigation SafeArgs আর ক্র্যাশ হবে না। ( I754 বি 1 , বি/233119646 )
  • আর্গুমেন্টের অভ্যন্তরীণ মানগুলি দেখানোর জন্য এখন NavArgument একটি কাস্টম toString() ফাংশন রয়েছে। ( I900a8 )

সংস্করণ 2.5.0-আরসি 01

11 মে, 2022

androidx.navigation:navigation-*:2.5.0-rc01 প্রকাশিত হয়েছে। সংস্করণ 2.5.0-আরসি 01 এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • আপনার navigation.xml ফাইলে <activity> ক্রিয়াকলাপ> উপাদানগুলির ভিতরে <deeplink> উপাদানগুলি স্থাপনের বিরুদ্ধে সতর্ক করার জন্য একটি নতুন লিন্ট নিয়ম যুক্ত করা হয়েছে। ( আইসি 15 এ 5 , বি/178403185 )

বাগ ফিক্স

  • NavHost এবং DialogHost কমপোজেবল স্কোপগুলি এখন প্রত্যাশিত ক্রমে নিষ্পত্তি করা হয়, অর্থাত্ অভ্যন্তরীণ কম্পোজেবলগুলি বাইরের কম্পোজেবলের আগে নিষ্পত্তি করা হয়। ( I157e6 )
  • নেভিগেশন সাফের্গস এখন ক্যাশে স্থানান্তরযোগ্যতার জন্য অনুমতি দেওয়ার জন্য ArgumentsGenerationTask PathSensitivity.RELATIVE ব্যবহার করে। এর অর্থ ক্যাশে এন্ট্রি এখন সিআই বিল্ড থেকে স্থানীয় বিল্ডে পুনরায় ব্যবহার করা যেতে পারে। ( I5f67c , খ/173420454 )
  • getBackStackEntry() কলকে ঘিরে remember কলটি একটি কী হিসাবে একটি NavBackStackEntry অবজেক্টেও পাস করে তা নিশ্চিত করার জন্য UnrememberedGetBackStackEntryDetector লিন্ট বিধি আপডেট করা হয়েছে। ( আইবি 7081 , বি/227382831 )

সংস্করণ 2.5.0-BETA01

20 এপ্রিল, 2022

androidx.navigation:navigation-*:2.5.0-beta01 প্রকাশিত হয়েছে। সংস্করণ 2.5.0-BETA01 এর মধ্যে এই কমিট রয়েছে।

বাগ ফিক্স

  • DialogNavigator এখন dismiss() কলটি কার্যকর করার সময় popWithTransition ব্যবহার করে। dialog গন্তব্য মধ্যে একটি ViewModel ব্যবহার করার সময় এটি একটি রেসের শর্তটি ঠিক করে যা সিস্টেম ব্যাক ব্যবহার করে বা প্রস্থান করার জন্য ডায়ালগের বাইরে ট্যাপ করে ডায়ালগটি খারিজ করার সময় একটি IllegalStateException তৈরি করে। ( আইডি 7376 , বি/226552301 )

নির্ভরতা আপডেট

  • নেভিগেশন এখন লাইফসাইকেল 2.5.0-beta01 উপর নির্ভর করে, একাধিক ব্যাক স্ট্যাক ব্যবহার করার সময় একটি অ-প্রাথমিক নীচের নেভিগেশন ট্যাবে অন্য একটি NavHost মধ্যে একটি NavHost বাসা বাঁধার সময় একটি IllegalStateException ঠিক করে।

সংস্করণ 2.5.0-আলফা 04

6 এপ্রিল, 2022

androidx.navigation:navigation-*:2.5.0-alpha04 প্রকাশিত হয়েছে। সংস্করণ 2.5.0-ALPHA04 এর মধ্যে এই কমিট রয়েছে।

এপিআই পরিবর্তন

  • visibleEntries আর পরীক্ষামূলক নয়। ( I4829f , খ/225394514 )

বাগ ফিক্স

  • কোন এন্ট্রিগুলি রচনা করবেন তা নির্ধারণ করতে নাভস্ট এখন NavController থেকে visibleEntries উপর নির্ভর করে। এর অর্থ হ'ল নেস্টেড ন্যাভস্ট ব্যবহার করার সময় অভ্যন্তরীণ NavHost এখন সঠিকভাবে অ্যানিমেট করা উচিত। ( আই 4 বিএ 2 বি, বি/225394514 )
  • NavController দ্বারা সরবরাহিত visibleEntries StateFlow এখন বর্তমান লাইফসাইকেল অবস্থার পরিবর্তে এন্ট্রি ম্যাক্স লাইফসাইকেল অবস্থার উপর ভিত্তি করে। এর অর্থ হ'ল এমনকি যদি navController হোস্ট লাইফসাইকেলটি নীচে শুরু হয়, তবে দৃশ্যমান এন্টায়ারগুলির তালিকা একই থাকবে। ( I9e2a8 , খ/225394514 )
  • SavedStateViewFactory এখন CreationExtras ব্যবহার করে সমর্থন করে এমনকি যখন এটি কোনও SavedStateRegistryOwner সাথে শুরু করা হয়েছিল। যদি অতিরিক্ত সরবরাহ করা হয় তবে প্রাথমিক যুক্তিগুলি উপেক্ষা করা হয়। ( I6c43 বি, বি/224844583 )
  • NavDeepLink এখন কোনও মান ছাড়াই একক ক্যোয়ারী প্যারামিটার সহ ইউআরআইগুলিকে পার্স করতে পারে। ( I0efe8 , বি/148905489 )
  • খালি স্ট্রিং এখন গভীর লিঙ্কগুলিতে বৈধ যুক্তি হিসাবে বিবেচিত হয়। ( I70a0d , খ/217399862 )
  • নেমস্পেস ব্যবহার করার সময় Navigation Safe Args আর ক্র্যাশ হবে না এবং কোনও AndroidManifest.xml উপস্থিত নেই। ( আই 17 সিসিএফ , বি/227229815 )

সংস্করণ 2.5.0-Alpha03

23 ফেব্রুয়ারি, 2022

androidx.navigation:navigation-*:2.5.0-alpha03 প্রকাশিত হয়েছে। সংস্করণ 2.5.0-ALPHA03 এ এই কমিটগুলি রয়েছে।

এপিআই পরিবর্তন

  • আপনি এখন ViewModel তৈরি করতে by navGraphViewModels CreationExtras যেতে পারেন। ( I29217 , বি/217618359 )

বাগ ফিক্স

  • NavDeepLinks এখন সঠিকভাবে এনকোডড নতুন লাইন অক্ষরগুলি রুট/গভীর লিঙ্ক ইউআরআইগুলিতে এম্বেড করা সমর্থন করে। ( I513d1 , খ/217815060 )
  • ভিউমোডেলগুলি তৈরি করতে NavBackStackEntries সাথে ব্যবহার করার সময় CreationExtras এখন সঠিকভাবে কাজ করবে। ( I69161 , বি/217617710 )
  • নেভিগেশন সেফ আরগস এখন অ্যান্ড্রয়েডম্যানিফেস্টে প্যাকেজের জায়গায় build.gradle সংজ্ঞায়িত নেমস্পেস ব্যবহার করে সমর্থন করে। ( I659ef , খ/217414933 )

সংস্করণ 2.5.0-আলফা 02

ফেব্রুয়ারী 9, 2022

androidx.navigation:navigation-*:2.5.0-alpha02 প্রকাশিত হয়েছে। সংস্করণ 2.5.0-ALPHA02 এর মধ্যে এই কমিট রয়েছে।

বাগ ফিক্স

  • নেভিগেশন থেকে 2.4.1 থেকে: নেস্ট গ্রাফগুলির সাথে ভিউবাইন্ডিং ব্যবহার করার সময় NavHostFragment এখন সঠিকভাবে OnBackPressedDispatcher সেট করবে। ( আইএফবিবি 51 , বি/214577959 )
  • নেভিগেশন থেকে 2.4.1 : যখন একাধিক নেস্টেড NavGraph মাধ্যমে গভীর সংযোগ স্থাপন করা পিছনের স্ট্যাকটি এখন সঠিকভাবে মধ্যবর্তী সূচনা গন্তব্যগুলি অন্তর্ভুক্ত করবে। ( I504c0 , খ/214383060 )

সংস্করণ 2.5.0-আলফা 01

জানুয়ারী 26, 2022

androidx.navigation:navigation-*:2.5.0-alpha01 প্রকাশিত হয়েছে। সংস্করণ 2.5.0-ALPHA01 এর মধ্যে এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

বাগ ফিক্স

  • একটি সমস্যা স্থির করা হয়েছে যেখানে একটি খণ্ডের onCreate() by navGraphViewModels() তৈরি একটি ViewModel অ্যাক্সেস করা একটি IllegalStateException দিয়ে ব্যর্থ হবে। ( I8a14d )
  • NavDeepLink এস আর দু'বার অকারণে আর ডিকোড করবে না, যার অর্থ যথাযথ আরগগুলি এখন আপনার চূড়ান্ত গন্তব্যে চলে গেছে। ( আই 31 বি 0 এ , বি/210711399 )

নিরাপদ আরগস

  • নিরাপদ আরগগুলি এখন অ্যান্ড্রয়েড গ্রেডল প্লাগইন সংস্করণ 7.0.4 এর উপর নির্ভর করে। এর অর্থ হ'ল নেভিগেশন নিরাপদ আরগগুলি আর .0.০ এর আগে অ্যান্ড্রয়েড স্টুডিও সংস্করণগুলির সাথে সামঞ্জস্যপূর্ণ হবে না, তবে এখন অ্যান্ড্রয়েড গ্রেডল প্লাগইন 7.1.0 এবং উচ্চতর সাথে সামঞ্জস্যপূর্ণ। ( I41c88 , বি/213086135 , বি/207670704 )

সংস্করণ 2.4.2

সংস্করণ 2.4.2

6 এপ্রিল, 2022

androidx.navigation:navigation-*:2.4.2 প্রকাশিত হয়েছে। সংস্করণ 2.4.2 এ এই কমিটস রয়েছে।

বাগ ফিক্স

সংস্করণ 2.4.1

সংস্করণ 2.4.1

ফেব্রুয়ারী 9, 2022

androidx.navigation:navigation-*:2.4.1 প্রকাশিত হয়েছে। সংস্করণ 2.4.1 এ এই কমিটস রয়েছে।

বাগ ফিক্স

  • নেস্টেড গ্রাফগুলির সাথে ভিউবাইন্ডিং ব্যবহার করার সময় NavHostFragment এখন সঠিকভাবে OnBackPressedDispatcher সেট করবে। ( আইএফবিবি 51 , বি/214577959 )
  • যখন একাধিক নেস্টেড NavGraph মাধ্যমে গভীর সংযোগ স্থাপন করা পিছনের স্ট্যাকটি এখন সঠিকভাবে মধ্যবর্তী সূচনা গন্তব্যগুলি অন্তর্ভুক্ত করবে। ( I504c0 , খ/214383060 )
  • নেভিগেশন 2.5.0-alpha01 থেকে ব্যাকপোর্ট করা হয়েছে: একটি সমস্যা স্থির করা হয়েছে যেখানে একটি খণ্ডের onCreate() by navGraphViewModels() তৈরি একটি ভিউমোডেল অ্যাক্সেস করা একটি IllegalStateException দিয়ে ব্যর্থ হবে। ( I8a14d )
  • নেভিগেশন 2.5.0-alpha01 থেকে ব্যাকপোর্ট করা হয়েছে: NavDeepLink এস আর অর্গানস ডিকোড আরগসকে দু'বার ডিকোড করে না, যার অর্থ সঠিকভাবে ডিকোডযুক্ত আরগগুলি এখন আপনার চূড়ান্ত গন্তব্যে চলে গেছে। ( আই 31 বি 0 এ , বি/210711399 )
  • নেভিগেশন 2.5.0-alpha01 থেকে ব্যাকপোর্ট করা: নিরাপদ আরগস এখন অ্যান্ড্রয়েড গ্রেডল প্লাগইন সংস্করণ 7.0.4 এর উপর নির্ভর করে। এর অর্থ হ'ল নেভিগেশন নিরাপদ আরগগুলি আর .0.০ এর আগে অ্যান্ড্রয়েড স্টুডিও সংস্করণগুলির সাথে সামঞ্জস্যপূর্ণ হবে না, তবে এখন অ্যান্ড্রয়েড গ্রেডল প্লাগইন 7.1.0 এবং উচ্চতর সাথে সামঞ্জস্যপূর্ণ। ( I41c88 , বি/213086135 , বি/207670704 )

সংস্করণ 2.4.0

সংস্করণ 2.4.0

জানুয়ারী 26, 2022

androidx.navigation:navigation-*:2.4.0 প্রকাশিত হয়েছে। সংস্করণ 2.4.0 এ এই কমিটস রয়েছে।

2.3.0 সাল থেকে গুরুত্বপূর্ণ পরিবর্তন

  • সমস্ত নেভিগেশন নিদর্শনগুলি কোটলিনে পুনরায় লেখা হয়েছে। এটি জেনেরিকগুলি (যেমন NavType সাবক্লাস) ব্যবহার করে ক্লাসগুলির বাতিলতার উন্নতি করেছে। সমস্ত কোটলিন এক্সটেনশন ফাংশন যা -ktx শিল্পের অংশ হিসাবে ব্যবহৃত হত তাদের নিজ নিজ প্রধান নিদর্শনগুলিতে স্থানান্তরিত করা হয়েছে। -ktx শিল্পকর্মগুলি প্রকাশিত হতে থাকবে তবে এটি সম্পূর্ণ খালি।
  • navigation-fragment আর্টিফ্যাক্টে এখন নতুন AbstractListDetailFragment মাধ্যমে দুটি পেন লেআউটের একটি প্রাক-বিল্ট বাস্তবায়ন রয়েছে। এই খণ্ডটি একটি তালিকা ফলক (যা আপনার সাবক্লাস সরবরাহ করে) পরিচালনা করতে একটি SlidingPaneLayout ব্যবহার করে এবং একটি বিশদ ফলক, যা আমাদের উদাহরণ বাস্তবায়নে দেখা যায়, যেমন একটি NavHostFragment এর বাস্তবায়ন হিসাবে ব্যবহার করে।
  • NavController currentBackStackEntryAsFlow() পদ্ধতিটি এমন একটি Flow সরবরাহ করে যা বর্তমান NavBackStackEntry পরিবর্তিত হয় যখনই নির্গত হয়। এই প্রবাহটি ম্যানুয়ালি একটি OnDestinationChangedListener পরিচালনার বিকল্প হিসাবে ব্যবহার করা যেতে পারে।
  • নাভকন্ট্রোলার এখন পরীক্ষামূলক visibleEntries সম্পত্তির মাধ্যমে একটি StateFlow হিসাবে সমস্ত দৃশ্যমান NavBackStackEntry দৃষ্টান্তগুলির একটি তালিকা পুনরুদ্ধার করার ক্ষমতা সরবরাহ করে।
  • কাস্টম নাভটাইপগুলি তৈরি করতে এখন NavType শ্রেণি প্রসারিত করা সম্ভব। আপনার নেভিগেশন গ্রাফটি প্রোগ্রামগতভাবে তৈরি করার সময় কেবল কাস্টম প্রকারগুলি সমর্থন করা হয় যেমন নেভিগেশন গ্রাফ কোটলিন ডিএসএল এর মাধ্যমে।
  • নেভিগেশন এখন findStartDestination() এবং getHierarchy() এপিআই সরবরাহ করে যা কাস্টম নেভিগেশনউই বাস্তবায়নে সহায়তা করতে ব্যবহার করা যেতে পারে। findStartDestination() হ'ল NavGraph একটি এক্সটেনশন ফাংশন যা আপনি যখন গ্রাফটিতে নেভিগেট করার সময় প্রদর্শিত হবে, প্রকৃত শুরুর গন্তব্যটি সনাক্ত করবে, এমনকি যদি startDestination নিজেই নেস্টেড NavGraph হয়। getHierarchy() NavDestination একটি ফাংশন যা প্রদত্ত গন্তব্য অন্যটির শ্রেণিবিন্যাসের মধ্যে থাকে কিনা তা যাচাই করতে ব্যবহার করা যেতে পারে।

    val matchingRoute: Boolean = destination.hierarchy.any { it.route == routeToFind }
    
  • NavigationUI পদ্ধতিগুলি যা একটি BottomNavigationView গ্রহণ করেছে তার পরিবর্তে তার সুপারক্লাসটি উপাদান 1.4.0 , NavigationBarView প্রবর্তিত হওয়ার জন্য আপডেট করা হয়েছে। এটি এই পদ্ধতিগুলি NavigationRailView সাথে ব্যবহার করার অনুমতি দেয়।

  • এক্সএমএল এর মাধ্যমে কোনও <action> উপাদানকে স্ফীত করার সময়, অ্যানিমেশন বৈশিষ্ট্যগুলি app:enterAnim="?attr/transitionEnter" সিনট্যাক্স।

  • নিরাপদ আরগস এখন প্রতিটি NavArgs ক্লাসের জন্য একটি fromSavedStateHandle() পদ্ধতি উত্পন্ন করে। ( #122 , খ/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() করতে দেয়। যদিও এটি বৈধ এবং দরকারী হতে থাকে, বিশেষত যে ক্ষেত্রে আপনি এক্সএমএলে আপনার নেভিগেশন গ্রাফটি সংজ্ঞায়িত করছেন এবং অটো-উত্পাদিত R.id কনস্ট্যান্টস বা নিরাপদ আরগস (যা বিল্ড টাইমে কোড তৈরি করতে সেই ধ্রুবকগুলি ব্যবহার করে) ব্যবহার করতে পারেন, এই সিস্টেমটি ব্যবহার করতে পারেন অনন্য পূর্ণসংখ্যার নেভিগেশনের মাধ্যমে রানটাইমে প্রোগ্রামেভাবে নির্মিত সম্পূর্ণ গতিশীল গ্রাফগুলি সমর্থন করার জন্য প্রয়োজনীয় শব্দার্থ অর্থ এবং ভাব প্রকাশকে ক্যাপচার করেনি কোটলিন ডিএসএল

এই রিলিজটি তার রুটে নেভিগেশন গ্রাফে কোনও গন্তব্যকে অনন্যভাবে সনাক্ত করার জন্য একটি নতুন বিকল্পের পরিচয় দেয়। একটি রুট একটি String যা কোনও গন্তব্যে অনন্য পথকে সংজ্ঞায়িত করে। সমস্ত কোটলিন ডিএসএল পদ্ধতি যা একটি গন্তব্য আইডি নিয়েছে তা এখন অবমূল্যায়ন করা হয়েছে এবং একটি সমতুল্য এপিআই দিয়ে প্রতিস্থাপন করা হয়েছে যা একটি রুট নেয়।

প্রতিটি রুটকে একটি Uri 'পাথ' অংশ হিসাবে বিবেচনা করা উচিত যা সেই গন্তব্য, যেমন, home , profile/{userId} , profile/{userId}/friends ইত্যাদি সংজ্ঞায়িত করে যখন কোনও গন্তব্যের পরিচয় নির্দিষ্ট করে থাকে সামগ্রীর টুকরো, এই গতিশীল যুক্তিগুলি অন্তর্নিহিত গভীর লিঙ্কগুলির মতো একই নিয়ম অনুসরণ করে রুটের অংশ হওয়া উচিত।

সমস্ত NavController এপিআই যা কেবলমাত্র আইডি গ্রহণ করত এখন একটি ওভারলোড রয়েছে যা একটি রুট String নেয়। এর মধ্যে navigate() , popBackStack() , popUpTo() এবং getBackStackEntry() অন্তর্ভুক্ত রয়েছে।

এর কিছু এপিআই এর প্রভাব রয়েছে:

  • কোটলিন ডিএসএল -তে popUpTo কোটলিন সম্পত্তিটি popUpToId পক্ষে অবমূল্যায়ন করা হয়েছে।
  • getStartDestination() API getStartDestinationId() এর পক্ষে অবমূল্যায়ন করা হয়েছে।

আইডি দ্বারা নেভিগেট করার বিপরীতে, রুট দ্বারা নেভিগেট করা একই বিধিগুলি অনুসরণ করে অন্তর্নিহিত গভীর লিঙ্কগুলি অনুসরণ করে যে আপনি কোনও নেস্টেড গ্রাফের যে কোনও গন্তব্যে সরাসরি নেভিগেট করতে পারেন, নিশ্চিত করে যে এই রুটগুলি বহুবিধ-মডিউল প্রকল্পগুলিতে ব্যবহারযোগ্য যা বাহ্যিকভাবে দৃশ্যমান গভীর লিঙ্ক যুক্ত না করেই ব্যবহারযোগ্য প্রতিটি গন্তব্য।

নেভিগেশন রচনা

navigation-compose আর্টিফ্যাক্ট নেভিগেশন উপাদান এবং জেটপ্যাক রচনার মধ্যে সংহতকরণ সরবরাহ করে। এটি আপনার অ্যাপ্লিকেশনটিতে গন্তব্য হিসাবে @Composable ফাংশনগুলি ব্যবহার করে।

এই রিলিজ প্রদান করে:

  • একটি NavHost কমপোজেবল যা আপনাকে composable এবং dialog গন্তব্যগুলি ব্যবহার করে কোটলিন ডিএসএল এর মাধ্যমে আপনার নেভিগেশন গ্রাফটি তৈরি করতে দেয়, পাশাপাশি আনভিগেশন নেভিগেশন উপাদানগুলির মতো al চ্ছিক নেভিগেটরদের সমর্থন।
  • গন্তব্যগুলির মধ্যে ক্রসফেডিংয়ের জন্য বাধ্যতামূলক সমর্থন। সহকারী নেভিগেশন অ্যানিমেশনটি পরীক্ষামূলক রচনা এপিআই ব্যবহার করে এন্টার এবং প্রস্থান ট্রানজিশনগুলি নিয়ন্ত্রণ করতে ব্যবহার করা যেতে পারে।
  • প্রতিটি কমপোজেবল গন্তব্যে একটি Lifecycle স্কোপিং। প্রতিটি গন্তব্য কেবল তখনই RESUMED অবস্থায় পৌঁছায় যখন কোনও প্রবেশের ট্রানজিশন সমাপ্ত হয় এবং তাত্ক্ষণিকভাবে STARTED হয় যখন কোনও প্রস্থান ট্রানজিশন শুরু হয়, এইভাবে আপনাকে সমস্ত IllegalStateException এবং মাল্টি-টাচ ইস্যুগুলি কেবল Lifecycle RESUMED সময় একটি navigate কলকে ট্রিগার করে এড়াতে দেয়।
  • ViewModel স্কোপিং (লাইফসাইকেলের viewModel() এপিআই এর মাধ্যমে ভিউমোডেল রচনা 2.4.0 বা hiltViewModel() হিল্ট নেভিগেশন রচনাটি গন্তব্য স্তরে 1.0.0 কমপোজ করে, এমন একটি সুযোগ সরবরাহ করে যা কনফিগারেশন পরিবর্তনগুলি থেকে বেঁচে থাকে এবং পিছনের স্ট্যাকের মধ্যে থাকে (যখন আপনার কমপোজেবল বিষয়বস্তু অন্যথায় নিষ্পত্তি করা হয়) এবং ভিউমোডেলের onCleared() এর একটি সংকেত সেই NavBackStackEntry সাথে সম্পর্কিত স্থায়ী নিষ্পত্তি এবং পরিষ্কার করার ইঙ্গিত দেয়।
  • গন্তব্য স্তরে rememberSaveable অবস্থার স্কোপিং, আপনি কোনও গন্তব্যে ফিরে আসার সময় সমস্ত কমপোজেবল রাষ্ট্রটি স্বয়ংক্রিয়ভাবে সংরক্ষণ এবং পুনরুদ্ধার করা নিশ্চিত করে।
  • প্রক্রিয়া মৃত্যু এবং বিনোদনের পরে NavController এবং এর গন্তব্যস্থলের অবস্থা সংরক্ষণ এবং পুনরুদ্ধার করার জন্য সম্পূর্ণ সমর্থন।
  • সিস্টেম ব্যাক বোতামের সাথে স্বয়ংক্রিয় সংহতকরণ।
  • যুক্তিগুলি পাস করার জন্য সমর্থন, গন্তব্যগুলিতে গভীর লিঙ্কগুলি সংযুক্ত করা এবং পূর্ববর্তী গন্তব্যগুলিতে ফলাফল ফিরিয়ে দেওয়া।

  • rememberNavController() এবং currentBackStackEntryAsState() এর নির্দিষ্ট সহায়কগুলি রচনা করুন যাতে উত্তোলন রাষ্ট্রের অনুমতি দেয় এবং NavController NavHost বাইরে কমপোজেবলগুলিতে সংযুক্ত করা হয় (যেমন নীচে নেভিগেশন বারের মতো)।

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()
        }
    }
}

আরও তথ্যের জন্য কমপোজ নেভিগেশন গাইড দেখুন।

একাধিক ব্যাক স্ট্যাক

নাভকন্ট্রোলার গন্তব্যগুলির ব্যাক স্ট্যাক পরিচালনা করার জন্য, আপনি যখন তাদের কাছে navigate() এবং যখন আপনি popBackStack() কল করেন তখন সেগুলি সরিয়ে ফেলেন বা সিস্টেমের ব্যাক বোতামটি ট্রিগার করার সময় সেগুলি সরিয়ে ফেলেন। বিদ্যমান NavOptions ক্লাস এবং নেভিগেশন গ্রাফ <action> -এর উপাদানগুলির সাথে সংহতকরণকে ব্যাক স্ট্যাকটি সংরক্ষণ এবং পুনরুদ্ধার সমর্থন করার জন্য প্রসারিত করা হয়েছে।

As part of this change, the NavigationUI methods of onNavDestinationSelected() , BottomNavigationView.setupWithNavController() and NavigationView.setupWithNavController() now automatically save and restore the state of popped destinations, enabling support for multiple back stacks without any code changes. When using Navigation with Fragments, this is the recommended way to integrate with multiple back stacks.

The underlying APIs for saving and restoring the state are exposed via a number of surfaces:

  • In Navigation XML, the <action> element can now use the boolean attributes of app:popUpToSaveState and app:restoreState to save the state of any destinations popped via app:popUpTo and restore the state associated with the destination passed as the 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” />
    
  • In the navOptions Kotlin DSL , you can add the restoreState boolean property and the saveState boolean property on the popUpTo builder :

    // Use the navigate() method that takes a navOptions DSL Builder
    navController.navigate(selectedBottomNavRoute) {
      launchSingleTop = true
      restoreState = true
      popUpTo(navController.graph.findStartDestination().id) {
        saveState = true
      }
    }
    
  • In manually building a NavOptions object via the NavOptions.Builder , you can use the setRestoreState() and new overload to setPopUpTo() that takes an additional saveState parameter.

    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);
    
  • Programmatic calls to popBackStack() can now include an additional saveState parameter.

  • You can use the clearBackStack() method to clear any state that was saved with popBackStack() or popUpToSaveState .

In all cases, the NavController will save and restore the state of each NavBackStackEntry , including any navigation destination scoped ViewModel instances. The Navigator APIs have been updated to enable each Navigator to support saving and restoring their own state.

আচরণ পরিবর্তন

  • NavDeepLinkBuilder now adds PendingIntent.FLAG_IMMUTABLE to the PendingIntent returned by createPendingIntent() , ensuring that this API works as expected when targeting Android 12.
  • Navigation now depends on Lifecycle 2.3.1 and now marks setGraph() , popBackStack() , navigateUp() , and navigate() , the methods that update the NavBackStackEntry Lifecycle , as @MainThread , aligning Navigation with the main thread enforcement introduced in Lifecycle 2.3.0 .
  • Deep links now verify that all required arguments (those without default values) are present in the Uri .
  • NavDeepLink parsed arguments now consider pound signs in the same way as question marks as a separator between path segments, preventing an argument from spanning across the pound sign.
  • When generating actions, Kotlin code generated from Safe Args now puts arguments without default values before those with default values as parameters.
  • When generating arguments, Safe Args now puts parameters without default values before those with default values.
  • Safe-Args now depends on Android Gradle Plugin 4.2.0. This means you should no longer get the using applicationIdTextResource warning.

পরিচিত সমস্যা

  • Fixed in Navigation 2.5.0-alpha01 : accessing a ViewModel created via by navGraphViewModels() from a Fragment's onCreate() will fail with an IllegalStateException . ( b/213504272 )
  • Fixed in Navigation 2.5.0-alpha01 : Safe Args 2.4.0 is incompatible with Android Gradle Plugin 7.1.0 and higher. ( b/213086135 )
  • Deep linking with multiple nested nav graphs doesn't correctly create the full backstack. ( b/214383060 )

Version 2.4.0-rc01

15 ডিসেম্বর, 2021

androidx.navigation:navigation-*:2.4.0-rc01 is released. Version 2.4.0-rc01 contains these commits.

আচরণ পরিবর্তন

  • NavDeepLink parsed arguments now consider pound signs in the same way as question marks as a separator between arguments. ( I21309 , b/180042703 )

বাগ ফিক্স

  • Deeplinks will no longer ignore arguments with values that are the same as the name of the placeholder. ( If8017 , b/207389470 )
  • NavController will no longer crash when popping a nested destination using transitions after the NavController has been restored. ( I0f7c9 , b/205021623 )
  • The error message when using an invalid startDestination will now default to the start destination's route if one is available. ( I86b9d , b/208041894 )

Navigation Compose Bug Fixes

  • Fixed potential crash caused by fast switching between the start destination and another destination using bottom nav menu items. ( Ic8976 , b/208887901 )
  • Dialog destination are now properly restored on top of the screen after config changes or process death. ( I4c0dc , b/207386169 )
  • Fixed an issue where attempting to retrieve a ViewModel from a dialog's NavBackStackEntry would fail when the dialog was dismissed. ( I6b96d , b/206465487 )
  • Fixed an issue when using activity destinations with Navigation Compose's NavHost that would result in infinite recompositions. ( I8f64c )
  • Fixed a leak in Navigation Compose where it was holding on to a reference of the old activity after a config change or process death. ( I4efcb , b/204905432 )

Safe Args Bug Fixes

  • SafeArgs no longer crashes when attempting to restore custom parcelable arrays after process death. ( I618e8 , b/207315994 )
  • Fixed a bug in safe args that would not allow boolean arrays to have a null value. ( I8c396 , b/174787525 )

Version 2.4.0-beta02

3 নভেম্বর, 2021

androidx.navigation:navigation-*:2.4.0-beta02 is released. Version 2.4.0-beta02 contains these commits.

এপিআই পরিবর্তন

  • The handling of both explicit and implicit deep links now automatically adds the saveState flag when navigating to another graph, ensuring that code such as NavigationUI.setupWithNavController and code using multiple back stacks works as expected. ( Ic8807 )

আচরণ পরিবর্তন

  • Deep link patterns are now compiled lazily in NavDeepLink instead of during inflation. This should improve the inflation time of navigation graphs that include deep links. ( b8d257 , b/184149935 )

বাগ ফিক্স

  • Fixed an issue where NavBackStackEntries were being pushed down to Lifecycle.State.CREATED after moving to Lifecycle.State.STARTED when the NavHost is added directly to the activity's setContent() . ( Ia5ac1 , b/203536683 )
  • Fixed a race condition where popping a DialogFragment destination off of the back stack before the dialog was actually shown would not actually dismiss the dialog, resulting in a crash when the errant dialog was manually dismissed by the user. ( I687e5 )
  • Fixed an issue where the onNavDestinationSelected API on NavigationUI would return true even if you didn't actually navigate() to that navigation graph. It now uses the same logic used internally by setupWithNavController to only select the MenuItem associated with the current destination using the hierarchy of the destination. ( I2b053 )

Version 2.4.0-beta01

27 অক্টোবর, 2021

androidx.navigation:navigation-*:2.4.0-beta01 is released. Version 2.4.0-beta01 contains these commits.

নতুন বৈশিষ্ট্য

  • You can now use by navGraphViewModel with a route as an alternative to using an ID so as to better support using the Navigation Kotlin DSL with Fragments. ( I901e3 , b/201446416 )

এপিআই পরিবর্তন

  • The visibleEntries API is now experimental. ( I93f6f )

বাগ ফিক্স

  • ViewModels will no longer be destroyed when transitions are interrupted by navigating back and forth between the same screens ( Id52d8 , b/200817333 )
  • Nullable NavDeepLink arguments no longer require a default value when adding deep links to NavDestination s. ( I5aad4 , b/201320030 )
  • NavBackStackEntries now with different Lifecycles are not longer considered equal. This means NavHost will properly recompose all destinations when doing navigation with singleTop and when reselecting bottom menu items. ( I1b351 , b/196997433 )
  • Fixed an issue with AbstractListDetailFragment that caused the layout_width and layout_weight attributes on the list pane returned by onCreateListPaneView() to be incorrectly handled or ignored. ( f5fbf3 )
  • The visual state of dialog destinations now correctly stays in sync with the DialogFragmentNavigator 's state. This means that manually calling the asynchronous dismiss() API for DialogFragment now properly clears all dialog destinations above the now dismissed dialog. This does not affect cases where you use popUpTo or popBackStack() to dismiss your dialog. ( I77ba2 )
  • AbstractAppBarOnDestinationChangedListener now has clearer error messaging for onDestinationChanged() . ( Ie742d )

Version 2.4.0-alpha10

29 সেপ্টেম্বর, 2021

androidx.navigation:navigation-*:2.4.0-alpha10 is released. Version 2.4.0-alpha10 contains these commits.

নতুন বৈশিষ্ট্য

  • NavController now offers the ability to retrieve a list of all visible NavBackStackEntry instances via the visibleEntries StateFlow ( Ia964e )
  • rememberNavController() now takes a optional set of Navigator instances that will be added to the returned NavController to better support optional Navigators such as those from Accompanist Navigation Material . ( I4619e )

বাগ ফিক্স

  • Dynamic Navigation will no longer crash when the Activity is recreated. ( Ifa6a3 , b/197942869 )
  • Fixed an issue with the system back button that occurs only after popping back to a composable destination that contains a NavHost . ( 3ed148 , b/195668143 )
  • SafeArgs now generates the arguments for fromBundle() and fromSavedStateHandle() in the proper parameter order. ( I824a8 , b/200059831 )

Version 2.4.0-alpha09

15 সেপ্টেম্বর, 2021

androidx.navigation:navigation-*:2.4.0-alpha09 is released. Version 2.4.0-alpha09 contains these commits.

নতুন বৈশিষ্ট্য

  • You can now use the clearBackStack() method to clear any state that was saved with popBackStack() or popUpToSaveState . ( I80a0f )
  • You can now pass in a list of arguments and/or deep links to your nested navigation graph's builder and they will automatically be added to the resulting graph. ( I8a470 , b/182545357 )

এপিআই পরিবর্তন

  • The navArgument Kotlin DSL function is now part of navigation-common instead of navigation-compose . This will require updating imports to continue to use this function. ( I1d095 )

আচরণ পরিবর্তন

  • When generating arguments, Safe Args now puts parameters without default values before those with default values. ( I89709 , b/198493585 )

বাগ ফিক্স

  • When using Navigation Compose, NavGraphs will only be DESTROYED once all their children are DESTROYED . ( I86552 , b/198741720 )
  • Nullable NavDeepLink arguments no longer require a default value. ( Ia14ef , b/198689811 )
  • Calling setGraph() with a new graph will now also clear any saved back stacks in addition to its previous behavior of popping the back stack. ( I97f96 )
  • Fixed an issue where OnDestinationChangedListener instances and the currentBackStackEntryFlow were not notified when using launchSingleTop . ( Iaaebc )

নির্ভরতা আপডেট

Version 2.4.0-alpha08

1 সেপ্টেম্বর, 2021

androidx.navigation:navigation-*:2.4.0-alpha08 is released. Version 2.4.0-alpha08 contains these commits.

নতুন বৈশিষ্ট্য

  • It is now possible to extend the NavType class to create custom NavTypes. Custom types are supported only when building your navigation graph programmatically, such as via the Navigation Graph Kotlin DSL . ( I78440 , b/196871885 )

আচরণ পরিবর্তন

  • When generating actions, Kotlin code generated from Safe Args now puts arguments without default values before those with default values as parameters. ( Idb697 , b/188855904 )
  • Deep links now verify that all required arguments (those without default values) are present in the Uri . ( #204 , b/185527157 )

বাগ ফিক্স

  • Using getBackStackEntry and previousBackStackEntry inside composable(), in conjunction with remember() , will no longer cause an exception for no destination being on the back stack. ( I75138 , b/194313238 )
  • Navigation Compose now properly recomposes when changing back stack arguments and using launchSingleTop=true . ( Iebd69 , b/186392337 )
  • There will no longer be an ArrayIndexOutOfBoundsException when calling setGraph with a graph with 13 or 29 destinations. ( I1a9f1 , b/195171984 )
  • The SafeArgs java generator should no longer cause lint warnings when generating Args classes. ( I1a666 , b/185843837 )

External Contribution

  • Thanks ospixd for ensuring that deep links verify that all required arguments (those without default values) are present in the Uri . ( #204 , b/185527157 )

Version 2.4.0-alpha07

18 আগস্ট, 2021

androidx.navigation:navigation-*:2.4.0-alpha07 is released. Version 2.4.0-alpha07 contains these commits.

বাগ ফিক্স

  • Navigation Compose now properly saves state after configuration changes and when changing graphs while using the multiple back stack feature. ( If5a3d , b/195141957 )
  • Re-selecting the same tab when using navigation compose with multiple back stacks will no longer result in a blank screen. ( I860dc , b/194925622 )
  • NavHost now observes for changes in the Lifecycle.State of NavBackStackEntry s which means using a NavHost in a fragment now will properly be recomposed as the lifecycle changes instead of resulting in a blank screen. ( I4eb85 , b/195864489 )
  • Fixed an issue where dismissing a DialogFragment would not correctly update the NavController state after recreating your activity (ie, after a configuration change). ( Icd72b )
  • Fixed an issue where popping a dialog destination would not update the NavController's system back button handling, potentially causing the NavController to intercept the back button even though it does not have any back stack to pop. ( If3b34 )
  • Safe-args now automatically generates a toSavedStateHandle method for arguments which can be used to test your ViewModel code. ( If1e2d , b/193353880 )

Version 2.4.0-alpha06

4 আগস্ট, 2021

androidx.navigation:navigation-*:2.4.0-alpha06 is released. Version 2.4.0-alpha06 contains these commits.

এপিআই পরিবর্তন

  • The requireSlidingPaneLayout() and requireDetailPaneNavHostFragment() methods on AbstractListDetailFragment have been renamed to getSlidingPaneLayout() and getDetailPaneNavHostFragment() , respectively. ( I34a08 )

আচরণ পরিবর্তন

  • When navigating with animations (like Crossfade ), the new destination's Lifecycle will now only reach the RESUMED when the animation completes. ( If0543 , b/172112072 , b/194301889 )
  • Navigation Compose's NavHost now sets the graph as part of the first composition. ( Ieb7be )

বাগ ফিক্স

  • Popping the last destination of a navigation graph no longer throws a ClassCastException . ( If0543 , b/172112072 , b/194301889 )
  • Fixed a NullPointerException that would occur when adding a deep link without a Uri and navigating via a route or deep link. ( 938a0c , b/193805425 )
  • Fixed an issue in Navigation Compose where a deep linked NavBackStackEntry would not reach the RESUMED state. ( I192c5 )
  • Fixed an issue where popping a dialog destination would not update the NavController's system back button handling, potentially causing the NavController to intercept the back button even though it does not have any back stack to pop. ( aosp/1782668 )

Version 2.4.0-alpha05

জুলাই 21, 2021

androidx.navigation:navigation-*:2.4.0-alpha05 is released. Version 2.4.0-alpha05 contains these commits.

আচরণ পরিবর্তন

  • Navigation Compose's NavHost now always uses Crossfades when navigating through destinations. ( I07049 , b/172112072 )
  • You can now make changes to the graph of a NavHost. Graphs with the same startDestination and destinations in the graph will be considered equal and will not clear the NavController back stack. ( I0b8db , b/175392262 )

বাগ ফিক্স

  • Fixed a NoSuchElementException when calling popBackStack() from within a LifecycleObserver attached to a NavBackStackEntry caused by reentrant updates to the NavController's state. ( I64621 )
  • AbstractListDetailFragment now allows SlidingPaneLayout to be completely stripped from your APK when AbstractListDetailFragment is not used. ( I611ad )
  • NavGraph and NavDestination now override the equals method so two objects with the same values will be considered equal. ( I166eb , b/175392262 )

Version 2.4.0-alpha04

জুলাই 1, 2021

androidx.navigation:navigation-*:2.4.0-alpha04 is released. Version 2.4.0-alpha04 contains these commits.

নতুন বৈশিষ্ট্য

  • The navigation-fragment artifact now contains a prebuilt implementation of a two pane layout via the new AbstractListDetailFragment . This fragment uses a SlidingPaneLayout to manage a list pane (which your subclass provides) and a detail pane, which uses a NavHostFragment as its implementation, as seen in our example implementation . ( Iac4be , b/191276636 )
  • The NavHost of the navigation-compose artifact now supports dialog destinations in addition to composable destinations. These dialog destinations will each be shown within a Composable Dialog , floating above the current composable destination. ( 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()
            }
        }
    }

এপিআই পরিবর্তন

  • The add function in NavigatorState has been renamed to push . All current calls to add() will need to be changed to push(). ( Ie89fc , b/172112072 )
  • Custom Navigator instances can now use the pushWithTransaction and popWithTransition APIs on NavigatorState to push or pop a destination asynchronously. Note that this APIs are not yet used by any of the included navigators. ( Ic4d7c , b/172112072 )

আচরণ পরিবর্তন

  • NavDeepLinkBuilder now adds PendingIntent.FLAG_IMMUTABLE to the PendingIntent returned by createPendingIntent() , ensuring that this API works as expected when targeting Android 12. ( If8c52 )

বাগ ফিক্স

  • Fixed an issue with <include-dynamic> where arguments passed to the graph would not be correctly passed to the dynamically included graph. ( I3e115 )
  • Fixed a NullPointerException when navigating to a destination using a string[] argument with a default value of @null . ( I1fbe8 )
  • Add ProGuard rules for @Navigator.Name , fixing issues when using R8 3.1 full mode. ( I2add9 , b/191654433 )
  • SafeArgs will no longer fail when building your app with Kotlin versions before 1.5.0 . ( Icd1ff , b/190739257 )

Version 2.4.0-alpha03

16 জুন, 2021

androidx.navigation:navigation-*:2.4.0-alpha03 is released. Version 2.4.0-alpha03 contains these commits.

বাগ ফিক্স

  • Fixed an issue where two navigate() calls were needed to navigate to an included dynamic graph. ( I7785c , b/188859835 )
  • Fixed a regression introduced in Navigation 2.4.0-alpha01 where setupActionBarWithNavController() would not properly remove the Up icon when you are on a top level destination. ( I5d443 , b/189868637 )
  • Fixed an IllegalStateException when calling popBackStack() after previously popping the root graph of the NavController. ( I2a330 , b/190265699 )
  • ProGuard rules for by navArgs() now properly apply when using navigation-common or any artifacts that depend on it. ( I68800 , b/190082521 )
  • An OnDestinationChangedListener that calls navigate() the first time it receives a callback now properly get a second callback with the destination it navigated to. ( Ie5f9e , b/190228815 )
  • Safe Args no longer crashes when using it with dynamic feature modules and AGP 7.0+. ( I69518 , b/189966576 )

পরিচিত সমস্যা

  • Safe Args will fail with an Unable to find method ''java.lang.String kotlin.text.CarsKt.titleCase(char, java.util.Locale)'' error when using Gradle 6.7.0 due to a dependency on an older version of Kotlin. This can be worked around by updating to use Gradle 7.0. ( b/190739257 )

Version 2.4.0-alpha02

2 জুন, 2021

androidx.navigation:navigation-*:2.4.0-alpha02 is released. Version 2.4.0-alpha02 contains these commits.

নতুন বৈশিষ্ট্য

  • Routes are now supported for Activity, Fragment and Dialog destinations, as well as throughout the DynamicNavigation Kotlin DSL. ( Ib5544 , Ia617b , I22f96 , b/188914648 , b/188901565 )
  • NavigationUI has temporarily added experimental APIs to allow opting out of saving your state. While always saving the state is the correct behavior, there are still uses of deprecated libraries (ie retained fragments), that cannot be supported when saving the state so this gives an opportunity for apps to slowly convert away from any unsupported APIs. ( Idf93c )
  • Navigation now provides findDestination() and getHierarchy() APIs that can be used to help implement custom NavigationUI. findDestination() is an extension function on NavGraph that will locate a destination within the graph. getHierarchy() is a function on NavDestination that can be used to verify if a given destination is within the hierarchy of another.( I2932f , b/188183365 )

    val matchingRoute: Boolean = destination.hierarchy.any { it.route == routeToFind }
    
  • NavigationUI methods that took a BottomNavigationView have been updated to instead take its superclass introduced in Material 1.4.0 , NavigationBarView . This allows these methods to be used with the NavigationRailView . ( Ib0b36 , b/182938895 )

  • When inflating an <action> element via XML, animation attributes can use attributes pulled from your theme using the app:enterAnim="?attr/transitionEnter" syntax. ( I07bc1 , b/178291654 )

এপিআই পরিবর্তন

বাগ ফিক্স

  • DialogFragmentNavigator now uses the NavigatorState.pop() API to inform the NavController when a dialog is dismissed by hitting the system back button or clicking outside of it, ensuring that the NavController state is always in sync with the Navigator's state. ( I2ead9 )
  • Navigation no longer gives a ConcurrentModificationException when using manipulating the list of OnDestinationChangedListeners from with an onDestinationChanged callback. ( Ib1707 , b/188860458 )

  • Safe Args no longer crashes when attempting to generate direction properties in Kotlin. ( Id2416 , b/188564435 )

  • The setId method on NavDestination is now properly annotated with @IdRes , so it only accepts resource ids. ( I69b80 )

  • The int parameter of findNode is now resId instead of resid . ( I7711d )

Dependency Update

  • Safe-Args now depends on Android Gradle Plugin 4.2.0. This means you should no longer get the using applicationIdTextResource warning. ( I6d67b , b/172824579 )

Version 2.4.0-alpha01

18 মে, 2021

androidx.navigation:navigation-*:2.4.0-alpha01 is released. Version 2.4.0-alpha01 contains these commits.

নতুন বৈশিষ্ট্য

  • The currentBackStackEntryAsFlow() method on NavController provides a Flow that emits whenever the current NavBackStackEntry changes. This flow can be used as an alternative to manually managing an OnDestinationChangedListener . ( I19c4a , #89 , b/163947280 )

একাধিক ব্যাক স্ট্যাক

The NavController is responsible for managing the back stack of destinations, adding destinations to the back stack when you navigate() to them and removing them when you call popBackStack() or trigger the system back button. The existing NavOptions class and the integration into <action> entries in the navigation graph XML has been expanded to support saving and restoring the back stack. ( b/80029773 )

As part of this change, the NavigationUI methods of onNavDestinationSelected() , BottomNavigationView.setupWithNavController() and NavigationView.setupWithNavController() now automatically save and restore the state of popped destinations, enabling support for multiple back stacks without any code changes. When using Navigation with Fragments, this is the recommended way to integrate with multiple back stacks. ( Ie07ca )

The underlying APIs for saving and restoring the state are exposed via a number of surfaces:

  • In Navigation XML, the <action> element can now use the boolean attributes of app:popUpToSaveState and app:restoreState to save the state of any destinations popped via app:popUpTo and restore the state associated with the destination passed as the 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” />
    
  • In the navOptions Kotlin DSL , you can add the restoreState boolean property and the saveState boolean property on the popUpTo builder :

    // Use the navigate() method that takes a navOptions DSL Builder
    navController.navigate(selectedBottomNavRoute) {
      launchSingleTop = true
      restoreState = true
      popUpTo(navController.graph.startDestinationId) {
        saveState = true
      }
    }
    
  • In manually building a NavOptions object via the NavOptions.Builder , you can use the setRestoreState() and new overload to setPopUpTo() that takes an additional saveState parameter.

    NavOptions navOptions = new NavOptions.Builder()
      .setLaunchSingleTop(true)
      .setRestoreState(true)
      .setPopUpTo(navController.getGraph().getStartDestinationId(),
        false, // inclusive
        true) // saveState
      .build();
    navController.navigate(selectedBottomNavId, null, navOptions);
    
  • Programmatic calls to popBackStack() can now include an additional saveState parameter.

In all cases, the NavController will save and restore the state of each NavBackStackEntry , including any navigation destination scoped ViewModel instances. The Navigator APIs have been updated to enable each Navigator to support saving and restoring their own state.

The ComposeNavigator used for composable destinations in Navigation Compose and the FragmentNavigator and DynamicFragmentNavigator used for <fragment> destinations in Navigation with Fragments have both been updated to use the new Navigator APIs and support saving and restoring state.

Navigation Routes

A route is a String that uniquely identifies a destination. While previously only used in Navigation Compose , this concept has now graduated to become a part of the core Navigation APIs. This provides an alternative to using integer IDs when constructing your graph through the Navigation Kotlin DSL . ( b/172823546 )

All APIs that used to only take an ID now have an overload that takes a route String . This includes navigate() , popBackStack() , popUpTo() , and getBackStackEntry() .

This has had some API implications:

  • The popUpTo kotlin property on the Kotlin DSL has been deprecated in favor of popUpToId . ( I59c73 , b/172823546 )
  • The getStartDestination() API has been deprecated in favor of getStartDestinationId() . ( I0887f , b/172823546 )

For developers upgrading from previous versions of Navigation Compose to Navigation Compose 2.4.0-alpha01 , this means that the following imports on extension methods are no longer necessary and should be removed:

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

The KEY_ROUTE argument has been replaced with the route property on NavDestination , allowing you to call navBackStackEntry.destination.route directly.

এপিআই পরিবর্তন

  • All Navigation artifacts have been rewritten in Kotlin. This has improved the nullability of classes using generics (such as NavType subclasses). All Kotlin extension functions that used to be part of the -ktx artifacts have been moved to their respective main artifacts. The -ktx artifacts will continue to be published, but are completely empty. ( b/184292145 )
  • NavDeepLinkBuilder now supports adding multiple distinct destinations to the generated back stack. ( I3ee0d , b/147913689 )
  • Add factory functions for DynamicNavHostFragment ( Icd515 , b/175222619 )
  • The unique ID of a NavBackStackEntry is now exposed as part of its public API. ( Ie033a )
  • The name and argument fields and destructuring functions of NamedNavArgument are now public. ( #174 , b/181320559 )
  • Introduced a new NavBackStackEntry#provideToCompositionLocals extension that provides the NavBackStackEntry to the relevant composition locals. ( #175 , b/187229439 )

Safe Args

  • Safe Args now generates a fromSavedStateHandle() method for each NavArgs class. ( #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)
    }
    
  • Updated Safe Args to depend on KotlinPoet 1.8.0 . ( #172 , b/183990444 )

আচরণ পরিবর্তন

  • Navigation now depends on Lifecycle 2.3.1 and now marks setGraph() , popBackStack() , navigateUp() , and navigate() , the methods that update the NavBackStackEntry Lifecycle , as @MainThread , aligning Navigation with the main thread enforcement introduced in Lifecycle 2.3.0 . ( b/171125856 )
  • Parsing Enum arguments from deep links is now case insensitive, allowing a deep link like http://www.example.com/red to match a www.example.com/{color} deep link even when the enum has the value of RED . ( #152 , b/135857840 )

Compose Compatibility

  • androidx.navigation:navigation-compose:2.4.0-alpha01 is only compatible with Compose version 1.0.0-beta07 and above.

বাগ ফিক্স

  • Fixed an issue where trailing argument placeholders would take precedence over deep links that have a matching exact suffix. ( #153 , b/184072811 )
  • NavHostFragment now supports custom Navigators that use the same @Navigator.Name("dialog") as the default DialogFragmentNavigator . ( Ib1c2c , b/175979140 )
  • Improved the behavior of NavigatorProvider#addNavigator to ensure that calling it repeatedly with the same instance does not cause issues. ( #176 , b/187443146 )

External Contributions

  • Thanks simonschiller for building support for Safe Args generating a fromSavedStateHandle() method for each NavArgs class. ( #122 , b/136967621 )
  • Thanks Bradleycorn for making parsing Enum arguments from deep links case insensitive. ( #152 , b/135857840 )
  • Thanks osipxd for fixing an issue where trailing argument placeholders would take precedence over deep links that have a matching exact suffix. ( #153 , b/184072811 )
  • Thanks tatocaster for updating Safe Args to depend on KotlinPoet 1.8.0 . ( #172 , b/183990444 )
  • Thanks jossiwolf for making the name and argument fields and destructuring functions of NamedNavArgument public. ( #174 , b/181320559 )
  • Thanks jossiwolf for introducing a new NavBackStackEntry#provideToCompositionLocals extension that provides the NavBackStackEntry to the relevant composition locals. ( #175 , b/187229439 )
  • Thanks jossiwolf for improved the behavior of NavigatorProvider#addNavigator to ensure that calling it repeatedly with the same instance does not cause issues. ( #176 , b/187443146 )

Version 1.0.0-alpha10

7 এপ্রিল, 2021

androidx.navigation:navigation-compose:1.0.0-alpha10 is released. Version 1.0.0-alpha10 contains these commits.

এপিআই পরিবর্তন

  • NavHost now accepts a Modifier , which is passed down to the composable container that wraps the destination composables. ( I85aca , b/175125483 )

বাগ ফিক্স

  • NavHost now works even when an OnBackPressedDispatcherOwner is not found, such is the case when previewing the NavHost . ( I7d8b4 )
  • Navigation Compose now depends on Navigation 2.3.5 , fixing an issue when using BackHandler inside a NavHost destination. ( I7e63b , b/182284739 )

Version 1.0.0-alpha09

10 মার্চ, 2021

androidx.navigation:navigation-compose:1.0.0-alpha09 is released. Version 1.0.0-alpha09 contains these commits.

এপিআই পরিবর্তন

  • LocalViewModelStoreOwner.current now returns a nullable ViewModelStoreOwner to better determine whether a ViewModelStoreOwner is available in the current composition. APIs that require a ViewModelStoreOwner , such as viewModel() and NavHost , still throw an exception if a ViewModelStoreOwner is not set. ( Idf39a )

বাগ ফিক্স

  • Navigation Compose now depends on Navigation 2.3.4 which includes the fix for attempting to set the same ViewModelStore object after the graph has been set. ( I65c24 , b/177825470 )

Version 1.0.0-alpha08

24 ফেব্রুয়ারি, 2021

androidx.navigation:navigation-compose:1.0.0-alpha08 is released. Version 1.0.0-alpha08 contains these commits.

নতুন বৈশিষ্ট্য

  • NavHost now populates the LocalSavedStateRegistryOwner CompositionLocal with that destination's NavBackStackEntry , ensuring that any state directly saved into the SavedStateRegistry will be saved and restored alongside the destination. ( I435d7 , b/179469431 )

Version 1.0.0-alpha07

ফেব্রুয়ারী 10, 2021

androidx.navigation:navigation-compose:1.0.0-alpha07 is released. Version 1.0.0-alpha07 contains these commits.

নির্ভরতা আপডেট

Version 1.0.0-alpha06

28 জানুয়ারী, 2021

androidx.navigation:navigation-compose:1.0.0-alpha06 is released. Version 1.0.0-alpha06 contains these commits.

এপিআই পরিবর্তন

  • Added a getBackStackEntry(route: String) extension method on NavController that returns the associated NavBackStackEntry . ( If8931 )

Version 1.0.0-alpha05

13 জানুয়ারী, 2021

androidx.navigation:navigation-compose:1.0.0-alpha05 is released. Version 1.0.0-alpha05 contains these commits.

Updated to depend on Compose 1.0.0-alpha10.

Version 1.0.0-alpha04

16 ডিসেম্বর, 2020

androidx.navigation:navigation-compose:1.0.0-alpha04 is released. Version 1.0.0-alpha04 contains these commits.

  • Updated for compatibility with Compose 1.0.0-alpha09 .

Version 1.0.0-alpha03

2 ডিসেম্বর, 2020

androidx.navigation:navigation-compose:1.0.0-alpha03 is released. Version 1.0.0-alpha03 contains these commits.

বাগ ফিক্স

  • Fixed an issue where popBackStack() and navigateUp() would not work after a configuration change or process death and recreation. ( Icea47 , b/173281473 )
  • Navigating to a nested graph within your NavHost now works properly. ( I0948d , b/173647694 )

Version 1.0.0-alpha02

11 নভেম্বর, 2020

androidx.navigation:navigation-compose:1.0.0-alpha02 is released. Version 1.0.0-alpha02 contains these commits.

এপিআই পরিবর্তন

  • Navigation compose now support NavOptions for using popUpTo and launchSingleTop operations ( If96c3 , b/171468994 )
  • Added a navigation function that takes a route instead of an ID that allows you to construct nested graphs in the Navigation Compose DSL. ( I1661d )
  • startDestination now comes before the route in the list of a parameters for a NavHost ( Ie620e )
  • You can now create a graph using the route as a start destination outside of a NavHost composable. ( Iceb75 )

Version 1.0.0-alpha01

অক্টোবর 28, 2020

android.navigation:navigation-compose:1.0.0-alpha01 is released. Version 1.0.0-alpha01 contains these commits.

নতুন বৈশিষ্ট্য

The navigation-compose artifact provides integration between the Navigation Component and Jetpack Compose . It uses @Composable functions as the destinations in your application.

This initial release provides:

  • A NavHost composable that allows you to construct your navigation graph via a Kotlin DSL.
  • Scoping of lifecycle, ViewModel , and remembered state at the destination level.
  • Automatic integration with the system back button.
  • Support for passing arguments, attaching deep links to destinations, and returning a result to previous destinations.
  • Compose specific helpers in rememberNavController() and currentBackStackEntryAsState() to allow hoisting state and connecting the NavController to composables outside of the NavHost (such as a bottom navigation bar).

See the Compose Navigation guide for more information.

সংস্করণ 2.3.5

সংস্করণ 2.3.5

7 এপ্রিল, 2021

androidx.navigation:navigation-*:2.3.5 is released. Version 2.3.5 contains these commits.

নতুন বৈশিষ্ট্য

  • When navigating using a NavDeepLinkRequest or Uri , you can now access the Uri , action, and mime type in the resulting destination by getting the intent from arguments via KEY_DEEP_LINK_INTENT , mirroring the functionality already available for external deep linking. ( I975c3 , b/181521877 )

বাগ ফিক্স

  • OnBackPressedCallbacks added to a dispatcher with the NavBackStackEntry as the LifecycleOwner now properly intercept back after the Activity Lifecycle is STOPPED , then STARTED ( Iff94f , b/182284739 )
  • Deep link domain parsing is now case insensitive, ensuring that www.example.com matches both www.example.com and www.Example.com . Note that query parameter names are still case sensitive. ( #144 , b/153829033 )
  • Fixed a NullPointerException that could occur when a destination has multiple non-nullable default arguments and you navigate to that destination while only overriding a subset of those arguments. ( aosp/1644827 )

নির্ভরতা আপডেট

External Contribution

Version 2.3.4

Version 2.3.4

10 মার্চ, 2021

androidx.navigation:navigation-*:2.3.4 is released. Version 2.3.4 contains these commits.

নতুন বৈশিষ্ট্য

  • ReferenceType arguments can now be properly parsed when sent as part of a deeplink URI. This supports both the raw integer value as well as hex values prefixed by 0x . ( #127 , b/179166693 )
  • The android:defaultValue for an argument with app:argType="float" now supports integer default values, allowing you to use android:defaultValue="0" rather than requiring the use of 0.0 . ( #117 , b/173766247 )

বাগ ফিক্স

  • Fix stuck installation progress when using Navigation's support for dynamic features. ( Ib27a7 , b/169636207 )
  • Calling setViewModelStore or setLifecycleOwner with the same object that has already been set will now be a no-op ( Idf491 , b/177825470 )
  • Safe-Args now adds suppress annotations on the proper methods when using java. ( I8fbc5 , b/179463137 )

External Contributions

  • Thanks JvmName for the pull request to ensure that ReferenceType arguments can now be properly parsed when sent as part of a deeplink URI. ( #127 , b/179166693 )
  • Thanks tatocaster for the pull request to allow the defaultValue for an argument with app:argType=”float” now supports integer default values. ( #117 , b/173766247 )

সংস্করণ 2.3.3

সংস্করণ 2.3.3

জানুয়ারী 27, 2021

androidx.navigation:navigation-*:2.3.3 is released. Version 2.3.3 contains these commits.

বাগ ফিক্স

  • There is no longer a crash when popping a NavBackStackEntry before its Lifecycle is moved to CREATED . ( Ie3ba3 )
  • Fixed regression caused by b/171364502 where navigating to an activity with an animation resource value of 0 caused a ResourceNotFoundException . ( I7aedb , b/176819931 )

সংস্করণ 2.3.2

সংস্করণ 2.3.2

2 ডিসেম্বর, 2020

androidx.navigation:navigation-*:2.3.2 is released. Version 2.3.2 contains these commits.

বাগ ফিক্স

  • Fixed a regression in NavigationUI where using an <activity> destination with onNavDestinationSelected would fail to navigate to the Activity. ( I22e34 , b/171364502 )
  • Fixed an issue where navigation-dynamic-features-fragment would result in navigating to the newly installed destination multiple times. ( aosp/1486056 , b/169636207 )
  • Fixed an issue where default arguments would not be sent to OnDestinationChangedListener instances when using launchSingleTop . ( I2c5cb )
  • Fixed an issue where navigating to a nested navigation graph would not create a new graph instance on the back stack. ( Ifc831 )
  • Fixed an issue where using navigate() with a popUpTo that removed the last destination in a navigation graph would not immediately destroy and remove the navigation graph itself from the back stack. ( I910a3 )
  • Navigation SafeArgs now uses KotlinPoet version 1.7.2 which adds support for Kotlin's explicit API mode. ( I918b5 )
  • NavHostFragment.findNavController(Fragment) now also checks the root decor view of a DialogFragment in addition to the existing checks of the Fragment hierarchy and Fragment's view hierarchy. This allows you to test dialog fragments that use Navigation with FragmentScenario and Navigation.setViewNavController() . ( I69e0d )

সংস্করণ 2.3.1

সংস্করণ 2.3.1

অক্টোবর 14, 2020

androidx.navigation:navigation-*:2.3.1 is released. Version 2.3.1 contains these commits.

নতুন বৈশিষ্ট্য

  • Default Animator resources have been added to Navigation UI and are recommended over the default animation resources. ( b/167430145 )
  • NavOptions now overrides the hashcode and equals methods ( b/161586466 )
  • Navigation now includes the current destination in the “No destination with ID” IllegalArgumentException, which should improve the developer debugging experience. ( b/168311416 )

বাগ ফিক্স

  • Safe Args will no longer wrap the return line, even if the generated argument class name is longer than 100 characters. ( b/168584987 )

Dependency Changes

  • navigation-ui now depends on DrawerLayout 1.1.1 , ensuring that NavigationUI is able to open the drawer even when using LOCK_MODE_LOCKED_CLOSED or LOCK_MODE_LOCKED_OPEN . ( b/162253907 )
  • Safe Args now depends on KotlinPoet 1.6.0 ( aosp/1435911 )
  • Safe Args now depends on AGP 4.0.1 ( aosp/1442337 )

সংস্করণ 2.3.0

সংস্করণ 2.3.0

জুন 24, 2020

androidx.navigation:navigation-*:2.3.0 is released. Version 2.3.0 contains these commits.

Major changes since 2.2.0

  • Feature Module integration : The navigation-dynamic-features-runtime and navigation-dynamic-features-fragment artifacts allow you to navigate to destinations that are defined in feature modules, automatically handling the installation of the feature modules as needed. See Navigate with feature modules for more information.
  • Navigation Testing : The navigation-testing artifact provides a TestNavHostController that allows you to set the current destination and verify the back stack after navigation operations. See Test Navigation for more information.
  • Returning a Result : The NavBackStackEntry associated with each destination on the Navigation back stack now allows you to access a SavedStateHandle suitable for storing small amounts of saved state that should be associated with a particular back stack entry. See Returning a result to the previous Destination for more information.
  • NavigationUI support for Openable : All usages of DrawerLayout in NavigationUI have been replaced with the more generic Openable interface added in CustomView 1.1.0 and implemented by DrawerLayout in DrawerLayout 1.1.0 .
  • Action and Mime Type support in deep links : Deep linking has been expanded to support app:action and app:mimeType in addition to the app:uri previously available. NavController now supports navigating by any combination of these fields via the new NavDeepLinkRequest class. See Navigate using NavDeepLinkRequest for more information.

পরিচিত সমস্যা

  • Support for deep link actions and mime types is not yet available in Manifest Merger . Until that work is completed, any generated <intent-filter> elements from the <nav-graph> element in your manifest won't include your mime type in its <data> element or your custom <action> . You must manually add an appropriate <intent-filter> to your manifest.

Version 2.3.0-rc01

জুন 10, 2020

androidx.navigation:navigation-*:2.3.0-rc01 is released. Version 2.3.0-rc01 contains these commits.

বাগ ফিক্স

  • Fixed a NullPointerException when replacing an instance of a destination with no arguments with another instance with arguments with singleTop . ( b/158006669 )
  • All destination is unknown exceptions thrown by NavController now have additional debugging information to help determine the state of the NavController . ( b/157764916 )

Version 2.3.0-beta01

20 মে, 2020

androidx.navigation:navigation-*:2.3.0-beta01 are released. Version 2.3.0-beta01 contains these commits.

বাগ ফিক্স

  • Fixed an issue where the Lifecycle of the NavBackStackEntry would not be properly updated after process death. ( b/155218371 )
  • OnDestinationChangedListener instances registered before calling setGraph() are now properly sent the restored destination after a process death. ( b/155218371 )
  • When using singleTop , the NavBackStackEntry now correctly has its arguments updated and the updated arguments are sent to all OnDestinationChangeListener instances. ( b/156545508 )

নির্ভরতা আপডেট

Version 2.3.0-alpha06

এপ্রিল 29, 2020

androidx.navigation:navigation-*:2.3.0-alpha06 is released. ( Version 2.3.0-alpha06 contains these commits. )

নতুন বৈশিষ্ট্য

  • Deep linking has been expanded to support app:action and app:mimeType in addition to the app:uri previously available. NavController now supports navigating by any combination of these fields via the new NavDeepLinkRequest class. ( b/136573074 , b/135334841 )

এপিআই পরিবর্তন

  • Greatly expanded the Kotlin DSL support for Dynamic Navigation destinations. ( b/148969800 )

বাগ ফিক্স

  • Fixed an issue where deep link Intents would be ignored when using a nested start destination. ( b/154532067 )

Version 2.3.0-alpha05

এপ্রিল 15, 2020

androidx.navigation:navigation-*:2.3.0-alpha05 is released. Version 2.3.0-alpha05 contains these commits.

নতুন বৈশিষ্ট্য

  • For dynamic graph includes using <include-dynamic> , you no longer need to specify app:graphPackage and a default one will be used by adding moduleName suffix to the applicationId after a dot. If you do need to customize your graphPackage , an ${applicationId} placeholder is now supported. ( b/152696768 )
  • The Navigation Graph Kotlin DSL now exposes a defaultArguments Map for actions, mirroring the ability to set default values on <action> elements in Navigation XML files. ( b/150345605 )

বাগ ফিক্স

  • From Navigation 2.2.2 : Fixed an IllegalStateException when deep linking to the start destination of your graph when you have multiple NavHostFragment instances in your Activity. ( b/147378752 )

নির্ভরতা আপডেট

Version 2.3.0-alpha04

18 মার্চ, 2020

androidx.navigation:navigation-*:2.3.0-alpha04 is released. Version 2.3.0-alpha04 contains these commits.

নতুন বৈশিষ্ট্য

  • Added support for feature module activity and fragment destinations in the Navigation Kotlin DSL. ( b/148969800 )

এপিআই পরিবর্তন

  • The DynamicExtras class no longer uses a builder pattern and can now be constructed directly. ( aosp/1253671 )
  • DynamicActivityNavigator now takes a Context in its constructor rather than an Activity . ( aosp/1250252 )

বাগ ফিক্স

  • NavigationUI no longer ignores empty labels (ie, a destination with android:label=”” ) and now correctly sets the title to an empty string. ( b/148679860 )

নির্ভরতা আপডেট

  • The Navigation Dynamic Features artifacts now depend on Play Core 1.6.5 . ( b/149556401 )

Version 2.3.0-alpha03

4 মার্চ, 2020

androidx.navigation:navigation-*:2.3.0-alpha03 is released. Version 2.3.0-alpha03 contains these commits.

এপিআই পরিবর্তন

বাগ ফিক্স

  • The navigation-common-ktx ProGuard rules now correctly only keep the NavArgs classes that are used rather than all NavArgs instances. ( b/150213558 )

Dependency changes

  • Navigation has reverted its dependency on Core 1.2.0 and now depends on Core 1.1.0 to avoid forcing developers to move to a newer dependency when Navigation does not depend on any new APIs in Core 1.2.0 .

Version 2.3.0-alpha02

ফেব্রুয়ারী 19, 2020

androidx.navigation:navigation-*:2.3.0-alpha02 is released. Version 2.3.0-alpha02 contains these commits.

নতুন বৈশিষ্ট্য

  • The NavBackStackEntry now allows you to access a SavedStateHandle suitable for storing small amounts of saved state that should be associated with a particular back stack entry. See Returning a result for an example use case. ( b/79672220 )

এপিআই পরিবর্তন

  • Convenience methods of getCurrentBackStackEntry() and getPreviousBackStackEntry() have been added to make it easier to retrieve a NavBackStackEntry for the current and previous destinations. ( b/79672220 )

বাগ ফিক্স

  • navigateUp() now passes the current destination's arguments and the KEY_DEEP_LINK_INTENT to the previous destination when launching your app on your own task stack. ( b/147456890 )

Dependency changes

Version 2.3.0-alpha01

ফেব্রুয়ারি 5, 2020

androidx.navigation:navigation-*:2.3.0-alpha01 is released. Version 2.3.0-alpha01 contains these commits .

নতুন বৈশিষ্ট্য

  • The new navigation-testing artifact provides a TestNavHostController class. This class provides an alternative to using a mock NavController when testing Navigation that allows you to set the current destination and verify the back stack after navigation operations. ( b/140884273 )
  • The new navigation-dynamic-features-fragment (and its transitive dependency, navigation-dynamic-features-runtime ) allows you to include destinations or entire navigation graphs (via <include-dynamic> ) from feature modules , providing seamless installation of on-demand feature modules when navigating to those destinations. See Navigate with feature modules for more information. ( b/132170186 )

বাগ ফিক্স

  • From Navigation 2.2.1 : Deep links without query parameters now correctly ignore any query parameters rather than appending them to trailing {argument} elements or not matching the deep link. ( b/147447512 )
  • From Navigation 2.2.1 : The navigation-ui ProGuard rules for DrawerArrowDrawable have been updated to ensure that android.enableJetifier=true is not required. ( b/147610424 )
  • From Navigation 2.2.1 : The navigation-common-ktx module now has a unique manifest package name instead of sharing the same manifest package name as navigation-runtime-ktx . ( aosp/1141947 )

নির্ভরতা আপডেট

সংস্করণ 2.2.2

সংস্করণ 2.2.2

এপ্রিল 15, 2020

androidx.navigation:navigation-*:2.2.2 are released. Version 2.2.2 contains these commits.

বাগ ফিক্স

  • Fixed an IllegalStateException when deep linking to the start destination of your graph when you have multiple NavHostFragment instances in your Activity. ( b/147378752 )
  • NavigationUI no longer ignores empty labels (ie, a destination with android:label=”” ) and now correctly sets the title to an empty string. This was previously released in Navigation 2.3.0-alpha04 . ( b/148679860 )
  • The navigation-common-ktx ProGuard rules now correctly only keep the NavArgs classes that are used rather than all NavArgs instances. This was previously released in Navigation 2.3.0-alpha03 . ( b/150213558

নির্ভরতা আপডেট

সংস্করণ 2.2.1

সংস্করণ 2.2.1

ফেব্রুয়ারি 5, 2020

androidx.navigation:navigation-*:2.2.1 is released. Version 2.2.1 contains these commits .

বাগ ফিক্স

  • Deep links without query parameters now correctly ignore any query parameters rather than appending them to trailing {argument} elements or not matching the deep link. ( b/147447512 )
  • The navigation-ui ProGuard rules for DrawerArrowDrawable have been updated to ensure that android.enableJetifier=true is not required. ( b/147610424 )
  • The navigation-common-ktx module now has a unique manifest package name instead of sharing the same manifest package name as navigation-runtime-ktx . ( aosp/1141947 )

নির্ভরতা আপডেট

সংস্করণ 2.2.0

সংস্করণ 2.2.0

জানুয়ারী 22, 2020

androidx.navigation:navigation-*:2.2.0 is released. Version 2.2.0 contains these commits .

Important changes since 2.1.0

  • NavBackStackEntry : You can now call NavController.getBackStackEntry() , passing in the ID of a destination or navigation graph on the back stack. The returned NavBackStackEntry provides a Navigation-driven LifecycleOwner , ViewModelStoreOwner (the same returned by NavController.getViewModelStoreOwner() ), and SavedStateRegistryOwner , in addition to providing the arguments used to start that destination.
  • Lifecycle ViewModel SavedState Integration : SavedStateViewModelFactory is now the default factory used when using by navGraphViewModels() or the ViewModelProvider constructor with a ViewModelStoreOwner returned by NavController.getBackStackEntry() or NavController.getViewModelStoreOwner() .
  • Query Parameter Support for Deep Links : Deep links with query parameters now support reordered query parameters; arguments that have a default value or are nullable are now optional when matching deep links.
  • Improved Animation Support : NavHostFragment now uses FragmentContainerView from Fragment 1.2.0 , fixing animation z-ordering issues and window insets dispatching to Fragments.

Version 2.2.0-rc04

18 ডিসেম্বর, 2019

androidx.navigation:navigation-*:2.2.0-rc04 is released. Version 2.2.0-rc04 contains these commits .

বাগ ফিক্স

Version 2.2.0-rc03

4 ডিসেম্বর, 2019

androidx.navigation:navigation-*:2.2.0-rc03 is released. Version 2.2.0-rc03 contains these commits .

বাগ ফিক্স

  • Fixed an issue with deep link parsing when using query parameters and an argument as the last part of the path that prevented more than one character of the final path argument from being parsed. ( b/144554689 )
  • Fixed an issue with deep link parsing where optional parameters would receive "@null" instead of null . ( b/141613546 )
  • NavHostFragment now correctly restores the graph after a configuration change when used with FragmentContainerView . ( b/143752103 )

Dependency changes

  • Navigation now depends on Lifecycle 2.2.0-rc03 , Lifecycle ViewModel SavedState 1.0.0-rc03 , Activity 1.1.0-rc03 , and Fragment 1.2.0-rc03 where appropriate.

Version 2.2.0-rc02

নভেম্বর 7, 2019

androidx.navigation:navigation-*:2.2.0-rc02 is released. Version 2.2.0-rc02 contains these commits .

Dependency changes

  • Navigation now depends on androidx.lifecycle 2.2.0-rc02 .

Version 2.2.0-rc01

23 অক্টোবর, 2019

androidx.navigation:navigation-*:2.2.0-rc01 is released with no changes since 2.2.0-beta01 . Version 2.2.0-rc01 contains these commits .

Version 2.2.0-beta01

9 অক্টোবর, 2019

androidx.navigation:navigation-*:2.2.0-beta01 is released. Version 2.2.0-beta01 contains these commits .

নতুন বৈশিষ্ট্য

  • NavDestination and its subclasses now override toString() to provide more helpful information when debugging. ( b/141264986 )

আচরণ পরিবর্তন

  • Extra query parameters are now ignored when matching deep links rather than causing the match to fail. ( b/141482822 )

বাগ ফিক্স

  • Fixed an issue where arguments in a deep link's path would be ignored if query parameters were also specified. ( b/141505755 )
  • The navArgs() Kotlin extension on Activity now has a better error message when there are no extras. ( b/141408999 )
  • Safe Args generated Directions Java classes now contain default values. ( b/141099045 )
  • Safe Args generated Args Java classes now contain default values. ( b/140123727 )
  • When using a Toolbar , NavigationUI no longer animates the text change when moving between two top level destinations. ( b/140848160 )

Version 2.2.0-alpha03

সেপ্টেম্বর 18, 2019

androidx.navigation:navigation-*:2.2.0-alpha03 is released. Version 2.2.0-alpha03 contains these commits .

আচরণ পরিবর্তন

  • Calling setViewModelStore() after calling setGraph now results in an IllegalStateException . This should always be set by the NavHost as part of the initial setup to ensure that all NavBackStackEntry instances have a consistent storage for ViewModel instances. ( aosp/1111821 )

বাগ ফিক্স

  • Fixed a ConcurrentModificationException when using ViewModel instances attached to multiple different navigation graph scoped ViewModelStore instances. ( aosp/1112257 )

Version 2.2.0-alpha02

5 সেপ্টেম্বর, 2019

androidx.navigation:navigation-*:2.2.0-alpha02 is released. The commits included in this version can be found here .

নতুন বৈশিষ্ট্য

  • Deep links with query parameters now support reordered query parameters; arguments that have a default value or are nullable are now optional when matching deep links. ( b/133273839 )
  • You can now call NavController.getBackStackEntry() , passing in the ID of a destination or navigation graph on the back stack. The returned NavBackStackEntry provides a Navigation-driven LifecycleOwner , ViewModelStoreOwner (the same returned by NavController.getViewModelStoreOwner() ), and SavedStateRegistryOwner , in addition to providing the arguments used to start that destination. ( aosp/1101691 , aosp/1101710 )

বাগ ফিক্স

  • Fixed an issue where adding a NavHostFragment to ViewPager2 failed with an IllegalArgumentException . ( b/133640271 )
  • NavInflater now avoids calling getResourceName() unnecessarily, speeding up inflation time by up to 40%. ( b/139213740 )

Version 2.2.0-alpha01

7 আগস্ট, 2019

androidx.navigation:navigation-*:2.2.0-alpha01 is released. The commits included in this version can be found here .

নতুন বৈশিষ্ট্য

  • SavedStateViewModelFactory is now the default factory used when using by navGraphViewModels() or the ViewModelProvider constructor with a ViewModelStoreOwner returned by NavController.getViewModelStoreOwner() . ( b/135716331 )

এপিআই পরিবর্তন

বাগ ফিক্স

  • NavHostFragment now uses FragmentContainerView , fixing animation z-ordering issues and window insets dispatching to Fragments. ( b/137310379 )

সংস্করণ 2.1.0

সংস্করণ 2.1.0

5 সেপ্টেম্বর, 2019

androidx.navigation:navigation-*:2.1.0 is released. The commits included in this version can be found here .

Important changes since 2.0.0

  • Scoping ViewModels to a navigation graph : You can now create ViewModels that are scoped at the navigation graph level using the by navGraphViewModels() property delegate for Kotlin users using the -ktx libraries or by using the getViewModelStoreOwner() API added to NavController . See Share UI-related data between destinations for more information.
  • Dialog destinations : You can now create <dialog> destinations that will show a DialogFragment when you navigate to them. NavHostFragment supports dialog destinations by default. See Create a destination from a DialogFragment for more information.
  • Navigating by Uri : You can now navigate using a Uri , which uses the <deepLink> you've added to a destination to navigate there. See Navigate using Uri for more information.
  • NavHostController : APIs used specifically for constructing a custom NavHost have been moved to NavHostController , allowing implementations to connect their NavController to the hosting LifecycleOwner , OnBackPressedDispatcher , and ViewModelStore .

Version 2.1.0-rc01

7 আগস্ট, 2019

androidx.navigation:navigation-*:2.1.0-rc01 is released. The commits included in this version can be found here .

এপিআই পরিবর্তন

  • The deprecated getViewModelStore() API on NavController introduced in 2.1.0-alpha02 has been removed. ( aosp/1091021 )

Version 2.1.0-beta02

জুলাই 19, 2019

androidx.navigation:*:2.1.0-beta02 is released. The commits included in this version can be found here .

বাগ ফিক্স

  • Removed unintentional jacoco dependency that was introduced in 2.1.0-beta01 . ( b/137782950 )

Version 2.1.0-beta01

জুলাই 17, 2019

androidx.navigation:*:2.1.0-beta01 is released. The commits included in this version can be found here .

নতুন বৈশিষ্ট্য

  • NavigationUI now animates the removal of the Up button when using setupWithNavController() with a Toolbar or CollapsingToolbarLayout . ( b/131403621 )

বাগ ফিক্স

  • Fixed a timing issue when using multiple NavHostFragments with the same container with findNavController() . ( b/136021571 )

Version 2.1.0-alpha06

জুলাই 2, 2019

androidx.navigation:*:2.1.0-alpha06 is released. The commits included in this version can be found here .

নতুন বৈশিষ্ট্য

  • The app:navGraph attribute used by NavHostFragment has now been moved to the navigation-runtime artifact. Custom navigators that can be added via XML should use this attribute to gain integration with the Navigation Editor's Host panel. ( b/133880955 )

এপিআই পরিবর্তন

  • The getViewModelStore() API on NavController has been deprecated in favor of the new getViewModelStoreOwner() method that returns a ViewModelStoreOwner . ( aosp/987010 )
  • The implementation of floating window destinations, such as <dialog> destinations, has been generalized into a marker interface, FloatingWindow , that all <dialog> destinations now implement. NavigationUI methods for interacting with the top app bar now ignore FloatingWindow destinations. ( b/133600763 )

আচরণ পরিবর্তন

  • Navigation now correctly keeps its state in sync with what is seen on the screen when using a <dialog> destination. As a consequence, Navigation now automatically pops <dialog> destinations when you navigate to a non-dialog and non-activity destination, such as a <fragment> destination. ( b/134089818 )

বাগ ফিক্স

  • Navigation now suppresses the animation that occurs when recreating the activity when handling a deep link, fixing a visual flash. ( b/130362979 )
  • Fixed a bug where the Navigation back stack would be out of sync when popping a Fragment as the initial fragment is being added. ( b/133832218 )

Version 2.1.0-alpha05

জুন 5, 2019

androidx.navigation:*:2.1.0-alpha05 is released. The commits included in this version can be found here .

এপিআই পরিবর্তন

  • Host related APIs on NavController have been renamed and moved to a new subclass of NavController , NavHostController . ( aosp/966091 )
  • The NavController setHostOnBackPressedDispatcherOwner() method has been replaced with NavHostController 's setOnBackPressedDispatcher() method and now requires that you call setLifecycleOwner() prior to calling it. ( aosp/965409 )
  • NavHostController now contains a enableOnBackPressed(boolean) method that replaces the NavHostOnBackPressedManager class that was previously returned by setHostOnBackPressedDispatcherOwner() . ( aosp/966091 )

বাগ ফিক্স

  • Fixed an issue where the back stack was not correct after navigating by URI. ( b/132509387 )
  • Deep links automatically handled by NavController now only trigger once. ( b/132754763 )

Version 2.1.0-alpha04

16 মে, 2019

androidx.navigation:*:2.1.0-alpha04 is released. The commits included in this version can be found here .

বাগ ফিক্স

  • NavHostFragment correctly respects app:defaultNavHost when intercepting the system Back button events, fixing a regression in Navigation 2.1.0-alpha03 . b/132077777
  • DialogFragmentNavigator now correctly handles popBackStack() and navigateUp() operations. b/132576764
  • Fixed an IllegalStateException: unknown destination during restore issue when repeatedly navigating between nested graphs. b/131733658

Version 2.1.0-alpha03

7 মে, 2019

androidx.navigation:*:2.1.0-alpha03 is released. The commits included in this version can be found here .

পরিচিত সমস্যা

  • NavHostFragment continues to intercept the system Back button despite using app:defaultNavHost="false" b/132077777

নতুন বৈশিষ্ট্য

  • You can now create <dialog> destinations that will show a DialogFragment when you navigate to them. NavHostFragment supports dialog destinations by default. b/80267254
  • In addition to calling navigate with a resource id or a NavDirections instance, you can now navigate via a Uri , which uses the <deepLink> you've added to a destination to navigate to the correct destination. b/110412864

আচরণ পরিবর্তন

  • The default animations provided by NavigationUI have been sped up from 400ms to 220ms to match the default animation speed of activities and fragments. b/130055522

এপিআই পরিবর্তন

  • The createFragmentNavigator() method of NavHostFragment has been deprecated and its functionality moved to the new onCreateNavController() method to make it more clear that this is the correct entry point of adding custom Navigators when subclassing NavHostFragment . b/122802849
  • A hasDeepLink() method has been added to NavDestination to allow you to check if a given Uri can be handled by that destination or, in the case of a NavGraph , any destination in the navigation graph. b/117437718

বাগ ফিক্স

  • Default arguments are now correctly passed to OnDestinationChangedListener instances. b/130630686
  • NavHostFragment now intercepts system Back events using the OnBackPressedDispatcher , fixing an issue when doing conditional navigation in Fragment lifecycle methods upon returning to a Fragment. b/111598096
  • For Safe Args, an android:defaultValue=”@null” with an unspecified app:argType is now properly inferred as a string argument. b/129629192

Version 2.1.0-alpha02

3 এপ্রিল, 2019

androidx.navigation:*:2.1.0-alpha02 is released. The commits included in this version can be found here .

নতুন বৈশিষ্ট্য

  • You can now create ViewModels that are scoped at a navigation graph level via the by navGraphViewModels() property delegate for Kotlin users or by using the getViewModelStore() API added to NavController . b/111614463

এপিআই পরিবর্তন

  • You can now add an app:targetPackage to an <activity> destination to limit the matching package name. It supports app:targetPackage="${applicationId}" for restricting the package to your own application id. b/110975456

বাগ ফিক্স

  • The android:name for <activity> destinations is no longer parsed into a Class at inflation time, preventing ClassNotFoundExceptions when using dynamic features. b/124538597

Version 2.1.0-alpha01

মার্চ 19, 2019

This is the first alpha release of Navigation 2.1.0 .

Dependency changes

  • Navigation now depends on androidx.core:core:1.0.1 and androidx.fragment:fragment:1.1.0-alpha05 . This release also removes the dependency on androidx.legacy:legacy-support-core-utils:1.0.0 . b/128632612

এপিআই পরিবর্তন

  • A new Navigation.createNavigateOnClickListener(NavDirections) method has been added as an alternative to creating a click listener with a resource ID and Bundle. b/127631752
  • FragmentNavigator.instantiateFragment is now deprecated. The default implementation now uses FragmentFactory to instantiate Fragments. b/119054429

বাগ ফিক্স

  • Navigation no longer sends a null Bundle when there are arguments attached to a destination, fixing an issue when using android:defaultValue="@null" . b/128531879
  • Safe Args now depends on KotlinPoet 1.1.0, fixing an issue with extremely long package names. b/123654948

সংস্করণ 2.0.0

সংস্করণ 2.0.0

14 মার্চ, 2019

Navigation 2.0.0 is released with no changes from 2.0.0-rc02 .

Version 2.0.0-rc02

6 মার্চ, 2019

Navigation 2.0.0-rc02 provides new artifacts with the androidx.navigation group ID and changes its dependencies to the AndroidX equivalents.

The behavior of 2.0.0-rc02 is identical to behavior to Navigation 1.0.0-rc02 and no changes to your code should be required to update from 1.0.0-rc02 besides updating your dependencies to match the new dependencies .

Your project must have migrated to AndroidX to use 2.X releases of Navigation. Navigation 1.0 stable will be the last release using the Support Library dependencies; all future development beyond 1.0 will be based on AndroidX and build upon the 2.0 stable release.

Pre-AndroidX Dependencies

For the pre-AndroidX versions of Navigation, include these dependencies:

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
}

For Safe args , add the following classpath in your top level build.gradle file

buildscript {
    repositories {
        google()
    }
    dependencies {
        classpath "android.arch.navigation:navigation-safe-args-gradle-plugin:1.0.0"
    }
}

সংস্করণ 1.0.0

সংস্করণ 1.0.0

14 মার্চ, 2019

Navigation 1.0.0 is released with no changes from 1.0.0-rc02 .

Version 1.0.0-rc02

ফেব্রুয়ারী 26, 2019

This is the second release candidate for Navigation's 1.0.0 stable release. This release contains a number of bug fixes.

বাগ ফিক্স

  • Fixed an issue where popBackStack() would be ignored if the root graph did not have an ID b/126251695
  • navigateUp() now correctly handles navigating back to your app's task when called after handling a deep link without FLAG_ACTIVITY_NEW_TASK b/126082008
  • Fixed an issue with ActivityNavigator.applyPopAnimationsToPendingTransition not applying the correct pop exit animation b/126237567
  • Kotlin code generated by Safe Args now properly escapes Kotlin keywords such as in and fun in the package name associated with the R class. b/126020455

Version 1.0.0-rc01

21 ফেব্রুয়ারি, 2019

This is a release candidate for Navigation's 1.0.0 stable release. This release contains one bug fix.

বাগ ফিক্স

  • Fixed an issue when using Fragments and singleTop navigation operations b/124294805

Version 1.0.0-beta02

ফেব্রুয়ারি 12, 2019

This release includes a number of minor improvements and important bug fixes.

নতুন বৈশিষ্ট্য

  • You can now use 0 as an android:defaultValue for reference arguments. b/124248602

আচরণ পরিবর্তন

  • Exact deep link matches are now prioritized over deep links with .* or argument matches. b/123969518

বাগ ফিক্স

  • popBackStack() and navigateUp now correctly return false when popping the last destination on the back stack, fixing a regression introduced in 1.0.0-beta01 . b/123933201
  • Navigation now correctly sets the ClassLoader during restoration of saved instance state, avoiding issues when using custom classes in Navigator saved state or in arguments sent to a NavDestination . b/123893858
  • Safe Args generated NavArgs classes no longer crash when restoring a Parcelable[] argument from saved instance state. b/123963545
  • Safe Args now properly cleans up unnecessary generated Kotlin classes. b/124120883

Version 1.0.0-beta01

ফেব্রুয়ারি 4, 2019

This is the first beta release of Navigation; moving forward, the Navigation API is expected to stay stable until the next version unless there is a critical problem. This release contains some bug fixes and behavior changes.

আচরণ পরিবর্তন

  • Navigation now ensures that argument default values are treated identically at runtime and through Safe Args. As a consequence, only arguments with an app:argType="reference" can have a default value point to another resource (for example, @color/colorPrimary ). Attempting to use a reference default value with a different app:argType will result in an exception when parsing the navigation XML. b/123551990
  • Safe Args now depends on Android Gradle Plugin 3.3.0 aosp/888413
  • Safe Args now depends on Kotlin 1.3.20 aosp/888414

বাগ ফিক্স

  • Safe Args can now be used in library and feature modules on all versions of the Android Gradle Plugin. b/121304903
  • Fixed a regression that would cause a single popBackStack() operation to pop all copies of a destination off the top of the back stack, rather than just a single destination at a time. b/123552990
  • Fixed an issue where the FragmentNavigator state would desynchronize with the NavController 's state, causing an IllegalStateException when attempting to restore the back stack. b/123803044
  • Fixed an issue where the NavigationUI handled back arrow would not appear when using ProGuard with obfuscation. b/123449431
  • The code generated by Safe Args now properly handles using an app:argType pointing to a static inner class in the format .OuterClass$InnerClass . b/123736741
  • The Java code generated by Safe Args now properly handles global actions and deeply nested destinations. b/123347762

Version 1.0.0-alpha11

23 জানুয়ারী, 2019

This is a hotfix release of 1.0.0-alpha10 that fixes an issue with Safe Args.

বাগ ফিক্স

  • Fixes an issue where Safe Args would fail to import the Directions class associated with global actions. b/123307342

Version 1.0.0-alpha10

23 জানুয়ারী, 2019

পরিচিত সমস্যা

  • Safe Args fails to import the Directions class associated with global actions. b/123307342

This release contains breaking API changes; please see the Breaking Changes section below.

নতুন বৈশিষ্ট্য

  • Kotlin users can now use the by navArgs() property delegate to lazily get a reference to a Safe Args generated NavArgs class in an Activity or Fragment . b/122603367
  • Safe Args now allows you to generate Kotlin code by applying the androidx.navigation.safeargs.kotlin plugin. The Kotlin code is built specifically for Kotlin only modules, using default arguments and immutable classes over the builder pattern that is still available via the previous androidx.navigation.safeargs plugin. b/110263087

আচরণ পরিবর্তন

  • Matching deep links are now biased towards the deep link that has the most matching arguments. b/118393029
  • Calling setGraph() on a NavController will now reset the back stack. b/111450672
  • Unknown deep links no longer throw an IllegalStateException , but are ignored, fixing issues with nested or multiple NavHostFragment s. b/121340440

ব্রেকিং পরিবর্তন

  • The NavOptions.applyPopAnimationsToPendingTransition() method for applying pop animations to an Activity has been moved to ActivityNavigator . b/122413117
  • Safe Args now avoids duplicating identical classes for actions without arguments. The return type for no argument methods in generated NavDirections classes is now NavDirections . b/123233147
  • Safe Args generated Directions classes no longer have a public constructor - you should only be interacting with the generated static methods. b/123031660
  • Safe Args generated NavDirections classes no longer have a public constructor - they should only be generated via the static methods in the generated Directions classes. b/122963206
  • The returned Bundle from NavDirections ' getArguments() is now marked as @NonNull rather than @Nullable . b/123243957

বাগ ফিক্স

  • NavDeepLinkBuilder now correctly handles multiple simultaneous PendingIntent s to the same destination by using the arguments you pass in to determine the uniqueness. b/120042732
  • NavController now correctly handles popBackStack() operations when using a nested NavHostFragment or other child Fragments with a back stack. b/122770335
  • NavigationUI now correctly sets the content description of the Up button. b/120395362
  • Safe Args generated Directions classes now correctly handle global actions that have the same id as an action on a destination. b/122962504
  • Safe Args generated NavDirections classes now correctly have equal hashCode() values when equals() would return true. b/123043662
  • FragmentNavigator now throws a better error message if you attempt to do custom FragmentTransactions on the NavHostFragment 's FragmentManager . You should always use getChildFragmentManager() . b/112927148

Version 1.0.0-alpha09

18 ডিসেম্বর, 2018

This release contains breaking API changes; please see the Breaking Changes section below.

We have chosen not to continue development of the android.arch.navigation:navigation-testing artifact. While it has proven helpful for internal testing of NavController , we strongly recommend alternate testing strategies, such as mocking the NavController instance in order to verify that the correct navigate() calls are being done. This approach is discussed in detail in the Single Activity talk at AndroidDevSummit 2018 and we'll be working on additional documentation specifically around testing with Navigation.

নতুন বৈশিষ্ট্য

  • MenuItem s with menuCategory="secondary" will no longer pop the back stack when used with NavigationUI methods. b/120104424
  • AppBarConfiguration now allows you to set a fallback OnNavigateUpListener instance which will be called when navController.navigateUp() returns false . b/79993862 b/120690961

ব্রেকিং পরিবর্তন

  • When using an <argument> with an argType="reference" , Navigation no longer parses the reference, instead providing the raw resource ID itself. b/111736515
  • onNavDestinationSelected() now pops back to the start destination of your navigation graph by default, making them consistent with the setup methods. Add menuCategory="secondary" to your MenuItem to avoid popping the back stack. aosp/852869
  • The fromBundle() methods of generated Args classes now take a non-null Bundle instead of a nullable Bundle aosp/845616

বাগ ফিক্স

  • Arguments are now properly parsed from deep links as the correct argType instead of always as strings b/110273284
  • Navigation now correctly exports its public resources b/121059552
  • Safe Args is now compatible with Android Gradle Plugin 3.4 Canary 4 and higher b/119662045

Version 1.0.0-alpha08

ডিসেম্বর 6, 2018

This release contains breaking API changes; please see the Breaking Changes section below.

নতুন বৈশিষ্ট্য

  • Destination labels, when used with NavigationUI methods, will now automatically replace {argName} instances in your android:label with the correct argument b/80267266
  • Navigation now depends on Support Library 28.0.0 b/120293333

ব্রেকিং পরিবর্তন

  • OnNavigatedListener has been renamed to OnDestinationChangedListener b/118670572
  • OnDestinationChangedListener now also passes the Bundle of arguments aosp/837142
  • The app:clearTask and app:launchDocument attributes and their associated methods have been removed. Use app:popUpTo with the root of your graph to remove all destinations from your back stack. b/119628354
  • ActivityNavigator.Extras now uses a Builder pattern and adds the ability to set any Intent.FLAG_ACTIVITY_ flags aosp/828140
  • NavController.onHandleDeepLink has been renamed to handleDeepLink aosp/836063
  • Many classes and methods not meant for subclassing, such as NavOptions , NavInflater , NavDeepLinkBuilder , and AppBarConfiguration , have been made final aosp/835681
  • The deprecated NavHostFragment.setGraph() method has been removed aosp/835684
  • The deprecated NavigationUI.navigateUp(DrawerLayout, NavController) method has been removed. aosp/835684
  • Fragment creation has been moved to FragmentNavigator , making it easier to delegate Fragment creation to a FragmentFactory . b/119054429
  • The constructor for NavGraphNavigator no longer takes a Context aosp/835340
  • NavigatorProvider is now a class, rather than an interface. The NavigatorProvider returned by getNavigatorProvider() has not changed its functionality. aosp/830660
  • NavDestination.navigate() has been removed. Call navigate() on the Navigator instead. aosp/830663
  • Significant refactoring of Navigator , removing the need for OnNavigatorNavigatedListener and instead having navigate return the NavDestination that was navigated to.
  • Navigator instances can no longer send pop events to the NavController . Consider using a OnBackPressedCallback to intercept back button presses and call navController.popBackStack() . aosp/833716

বাগ ফিক্স

  • popUpTo now works consistently when the destination is a <navigation> element b/116831650
  • Fixed a number of bugs that resulted in an IllegalArgumentException when using nested graphs b/118713731 b/113611083 b/113346925 b/113305559
  • The dataPattern attribute of <activity> destinations will now populate arguments from non-String arguments by calling toString() b/120161365

Safe Args

  • Safe Args supports Serializable objects, including Enum values. Enum types can set a default value by using the enum literal without the class name (eg app:defaultValue="READ" ) b/111316353
  • Safe Args supports arrays of all supported types b/111487504
  • Safe Args now ignores subfolders of resource directories b/117893516
  • Safe Args adds @Override annotations where appropriate b/117145301

Version 1.0.0-alpha07

অক্টোবর 29, 2018

নতুন বৈশিষ্ট্য

ব্রেকিং পরিবর্তন

  • The navigation-testing-ktx module has been folded into the navigation-testing artifact and will no longer be published.
  • The navigation-testing artifact now has a dependency on the Kotlin standard library. The API has been changed to be more consistent with Kotlin conventions, but you can continue to use it for tests written in Java.
  • Metadata manifest registered navigation graphs are no longer supported. b/118355937
  • Actions can no longer be attached to <activity> destinations. aosp/785539

বাগ ফিক্স

  • Deep links now correctly parse query parameters. b/110057514
  • Activity destinations now correctly apply all enter and exit animations. b/117145284
  • Fixed crash that occurs after configuration changes when using custom Navigators. b/110763345

Safe Args

  • Safe args now have a fixed dependency on Android Gradle Plugin 3.2.1. b/113167627
  • Directions can now be generated for inner classes. b/117407555
  • Fixed an issue with generating Directions to an <include> graph. b/116542123

Version 1.0.0-alpha06

সেপ্টেম্বর 20, 2018

নতুন বৈশিষ্ট্য

এপিআই পরিবর্তন

  • Breaking Change: The Navigator navigate() method now takes a Navigator.Extras parameter.
  • NavController's getGraph() method is now NonNull b/112243286

বাগ ফিক্স

  • NavigationUI.setupWithNavController() no longer leaks views if used with views from individual destinations b/111961977
  • Navigator onSaveState() is now only called once b/112627079

Safe Args

  • Navigation destination Directions classes now extend their parent's Directions class if it exists b/79871405
  • Directions and Args classes now have a useful toString() implementation b/111843389

Version 1.0.0-alpha05

আগস্ট 10, 2018

বাগ ফিক্স

  • Fix a bug which cause incorrect backstack behavior. b/111907708
  • Fix a bug in equals() of Generated Args classes. b/111450897
  • Fix a build failure in Safe Args. b/109409713
  • Fix a conversion from resource identifiers to java names b/111602491
  • Fix error messages about nullability in Safe Args plugin.
  • Add missing nullability annotations.

Version 1.0.0-alpha04

জুলাই 19, 2018

Navigation 1.0.0-alpha04 and the associated Safe Args gradle plugin contains a number of API changes, behavior changes, and bug fixes.

API / Behavior Changes

  • NavHostFragment will always set the current Fragment as the primary navigation fragment, ensuring that child fragment managers are popped before the outer NavController is popped b/111345778

Safe Args

  • Breaking Change: app:type has been changed to app:argType to avoid conflicts with other libraries such as ConstraintLayout 2.0.0-alpha1 b/111110548
  • Error messages from Safe Args are now clickable b/111534438
  • Args classes now confirms that NonNull attributes are actually not null b/111451769
  • Additional NonNull annotations have been added to NavDirections and Args generated classes b/111455455 b/111455456

বাগ ফিক্স

  • Fixed an issue with the system back button after deep linking to a fragment destination b/111515685

Version 1.0.0-alpha03

জুলাই 12, 2018

Navigation 1.0.0-alpha03 and the associated Safe Args gradle plugin contains a number of API changes, behavior changes, and bug fixes.

API / Behavior Changes

  • A NavigationUI.setupWithNavController method for Toolbar has been added b/109868820
  • A NavigationUI.setupWithNavController method for CollapsingToolbarLayout has been added b/110887183
  • popBackStack() now returns false when the back stack is empty or when the given destination ID is not in the back stack b/110893637
  • FragmentNavigator now ignores navigation operations after FragmentManager has saved state, avoiding “Can not perform this action after onSaveInstanceState” exceptions b/110987825

Safe Args

  • Breaking Change: Non-alphanumeric characters in action and argument names will be replaced by camel casing in the respective NavDirections method names
    • Eg DemoController.index will become setDemoControllerIndex b/79995048
    • Eg action_show_settings will become actionShowSettings b/79642240
  • Breaking Change: Arguments are now considered non-null by default. To allow null values on string and parcelable arguments, add app:nullable="true" b/79642307
  • You can now use app:type="long" with defaultValues in the form of “123L” b/79563966
  • Parcelable arguments are now supported, using a fully qualified class name for app:type . The only default value supported is "@null" b/79563966
  • Args classes now implement equals() and hashCode() b/79642246
  • The Safe Args plugin can now be applied to library projects b/80036553
  • The Safe Args plugin can now be applied to feature projects b/110011752

বাগ ফিক্স

  • Fixed issues when navigating during Fragment lifecycle methods b/109916080
  • Fixed issues when navigating through nested graphs multiple times b/110178671
  • Fixed issues when using setPopUpTo with the first destination in the graph b/109909461
  • Fixed issue where all app:defaultValue values were being passed as Strings b/110710788
  • aapt2 bundled with Android Gradle Plugin 3.2 Beta 01 now adds keep rules for every android:name attribute in Navigation XML files b/79874119
  • Fixed memory leak when replacing the default FragmentNavigator b/110900142

Version 1.0.0-alpha02

জুন 7, 2018

আচরণ পরিবর্তন

  • FragmentNavigator now uses setReorderingAllowed(true) . b/109826220

  • Navigation now URLDecodes arguments parsed from deep links URLs. b/79982454

বাগ ফিক্স

  • Fixed an IllegalStateException when calling navigate from Fragment lifecycle methods. b/79632233

  • Navigation now depends on Support Library 27.1.1 to fix flickering when using animations. b/80160903

  • Fixed an IllegalArgumentException when using defaultNavHost="true" as a child fragment. b/79656847

  • Fixed a StackOverflowError when using NavDeepLinkBuilder. b/109653065

  • Fixed an IllegalArgumentException when navigating back to a nested graph. b/80453447

  • Fixed an issue with overlapping Fragments when using launchSingleTop . b/79407969

  • Navigation now builds the correct synthetic back stack for nested graphs. b/79734195

  • NavigationUI will now highlight the correct item when using a nested graph as a MenuItem . b/109675998

এপিআই পরিবর্তন

  • The clearTask attribute for actions and the associated API in NavOptions has been deprecated. b/80338878

  • The launchDocument attribute for actions and the associated API in NavOptions has been deprecated. b/109806636

Version 1.0.0-alpha01

8 মে, 2018

Navigation provides a framework for building in-app navigation. This initial release is 1.0.0-alpha01 .