Birden çok arka yığın yığınını destekleme

Navigasyon bileşeni, Android işletim sistemiyle birlikte çalışarak geri yığını emin olmanız gerekir. Bazı durumlarda, tek seferde birden fazla öğeyi kullanıcı aralarında geçiş yaparak aynı anda geri yığınlar oluşturur. Örneğin, uygulamanız alt gezinme veya gezinme çekmece, birden fazla arka yığın desteği, kullanıcılarınızın uygulamanızdaki akışlar arasında serbestçe geçiş yapmasını sağlar. kaybetmemesi sağlanır.

Gezinme bileşeni, Google Ads'deki birden çok arka yığını destekleyen navigasyonunuzdaki hedeflerin durumunu kaydetme ve geri yükleme grafiği de bulabilirsiniz. İlgili içeriği oluşturmak için kullanılan NavigationUI sınıf şunları içeriyor bunu otomatik olarak yapan yöntemleri kullanabilirsiniz, ancak aynı zamanda temel API'leri de manuel olarak manuel olarak değiştirebilirsiniz.

NavigationUI ile desteği otomatik olarak uygulayın

NavigationUI sınıfı aşağıdaki gibi menü öğelerinin durumunu otomatik olarak kaydeden ve geri yükleyen API'leri içerir: hareket etmesini sağlar. Bu API'ler, aşağıdaki adımları uygulayarak birden çok arkadan yığın desteği uygular: varsayılan olarak ayarlayabilirsiniz:

Bu API'lerde birden fazla arka yığını uygulamak için başka kod değişikliği gerekmez birden çok sırt yığınını desteklemenin önerilen yoludur. uygulamasını indirin.

Temel API'lerle desteği manuel olarak uygulayın

NavigationUI tarafından sağlanan öğeler gereksinimlerinizi karşılamıyorsa Gezinme bileşeni tarafından sağlanan diğer API yüzeyleri.

Gezinme XML'de, gezinme grafiğinizdeki <action> öğeleri Hedefin durumunu kaydetmek için app:popUpToSaveState özelliğini işlem app:popUpTo kullanılarak açıldı. Ayrıca, app:restoreState özelliğini kullanın. app:destination özelliği.

Birden çok arka yığını desteklemek için bu özellikleri kullanabilirsiniz. Bir navigasyon işlemin kullanıcıyı bir arka yığından diğerine taşıması gerekir; app:popUpToSaveState ve app:restoreState ile true arasında <action> öğesi. Bu şekilde, işlem mevcut geri dönen kullanıcının durumunu kaydeder yığının önceden kaydedilmiş durumunu da geri yükler üst üste dizdir.

Aşağıdaki örnekte bu iki özelliğin de kullanıldığı bir işlem gösterilmektedir:

<action
  android:id=”@+id/swap_stack”
  app:destination=”@id/second_stack”
  app:restoreState=”true”
  app:popUpTo=”@id/first_stack_start_destination”
  app:popUpToSaveState=”true” />

NavOptions sınıfı Yığınları kaydetmek ve geri yüklemek için özel gezinme seçenekleri iletmenize olanak tanır NavController kullanarak gezinebilirsiniz. Bu durum, Kotlin kullanan NavOptions örneği DSL veya NavOptions.Builder:

Kotlin

// Use the navigate() method that takes a navOptions DSL Builder
navController.navigate(selectedBottomNavRoute) {
  launchSingleTop = true
  restoreState = true
  popUpTo(navController.graph.findStartDestination().id) {
    saveState = true
  }
}

Java

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);

Gezinme seçeneklerini geçirme hakkında daha fazla bilgi edinmek için NavOptions'ı uygulama bölümüne bakın programatik olarak kullanılabilir.

Ek kaynaklar

Gezinme bileşeniyle birden çok arkadan yığın desteği hakkında daha fazla bilgi edinmek için aşağıdaki ek kaynakları inceleyin:

Blog yayınları

Örnekler