Currentscreen vom Navigator -Controller erhaltenAndroid

Forum für diejenigen, die für Android programmieren
Anonymous
 Currentscreen vom Navigator -Controller erhalten

Post by Anonymous »

Ich implementiere einen Navigationscontroller für meine App: https://developer.android.com/guide/nav ... controller.
Ich habe das folgende Bildschirmschnittstellen mit einigen Instanzen davon definiert:

Code: Select all

interface Screen {
/**
* Unique name to define the path for a composable
*/
val route: String

/**
* String resource id to that contains title to be displayed for the screen.
*/
val title: Int
}

object WelcomeDestination : Screen {
override val route = "welcome"
override val title = R.string.app_name
}

object AnotherDestination : Screen {
override val route = "another"
override val title = R.string.title_another
}
< /code>
Ich definiere die App mit dem ViewController und dem Navcontroller. Dann möchte ich die aktuelle Bildschirminstanz mit Toroute () aus dem Navigation Controller erhalten: < /p>
@Composable
fun MyApp(
navController: NavHostController = rememberNavController(),
) {
val backStackEntry by navController.currentBackStackEntryAsState()
val currentScreen : Screen = backStackEntry?.toRoute() ?: WelcomeDestination
}
< /code>
, aber ich erhalte diesen Fehler in der Ausführungszeit: < /p>
java.lang.IllegalArgumentException: Polymorphic value has not been read for class null
Ich denke, es könnte daran liegen, dass ich Objektinstanzen verwende. Vielleicht sollte ich meine Implementierung in eine @Serializable -Klasse mit Data -Objekt und Datenklasse in dieser Klasse für jede Bildschirmoption ändern? Aber ich bin mir nicht sicher, ob das das Problem lösen würde.>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post