【问题标题】:Jetpack conditional navigationJetpack 条件导航
【发布时间】:2018-08-24 20:05:35
【问题描述】:

我想根据条件更改我的开始导航片段。我的起始片段可能是片段一或二。有没有办法实现它?

【问题讨论】:

  • 目前库不支持判断条件。您应该在确定 startDestination 的自定义 NavFragment 中执行此操作

标签: android-layout android-navigation android-jetpack


【解决方案1】:

Check out this question and its solution // 此处还添加了 Java 代码

刚刚将 Kotlin 代码转换为 Java

NavHostFragment navHostFragment = (NavHostFragment) getSupportFragmentManager().findFragmentById(R.id.home_nav_fragment);  // Hostfragment
NavInflater inflater = navHostFragment.getNavController().getNavInflater();
NavGraph graph = inflater.inflate(R.navigation.nav_main);
graph.setDefaultArguments(getIntent().getExtras());
graph.setStartDestination(R.id.fragment1);

navHostFragment.getNavController().setGraph(graph);
navHostFragment.getNavController().getGraph().setDefaultArguments(getIntent().getExtras());

NavigationView navigationView = findViewById(R.id.navigationView);
NavigationUI.setupWithNavController(navigationView, navHostFragment.getNavController());

【讨论】:

    【解决方案2】:

    Check out this question and it's solution

    我还在答案下方添加了一条评论以澄清一下。

    【讨论】:

    • 谢谢.. 你有使用 Java 实现的示例吗?
    • 不,我不知道,但我想用 Java 重写该代码应该不难。
    猜你喜欢
    • 2020-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多