【问题标题】:How to disable back navigation after app reaches home page of the app in android?应用程序到达android应用程序主页后如何禁用返回导航?
【发布时间】:2019-08-20 03:50:44
【问题描述】:

我正在使用一个 Activity,我的 android 应用中有许多片段。

我有一个与 Navhost 相关的主要活动。和 3 个片段。 fragment1 作为导航起点的主页片段。 fragment1 导航到 fragment2, 片段 2 导航到片段 3。

从fragment3,它导航到home fragment,即fragment1。

从片段 3 到达片段 1 后,如果我在片段 1 中向后按,它会再次导航到片段 3,而不是退出应用程序。

我应该如何禁用从主页片段到片段3的后退导航。

我用过 navController.navigate(navController.getGraph().getStartDestination()); 在片段3中。不工作。

【问题讨论】:

标签: android android-fragments android-navigation


【解决方案1】:

我试过了,效果很好。

navController.popBackStack(R.id.fragment2,true); navController.popBackStack(R.id.fragment3,true); navController.navigate(navController.getGraph().getStartDestination());

【讨论】:

  • 这行得通,但这可以追溯到第一个片段仍然保存片段视图模型数据。
【解决方案2】:

因为片段 3 还活着。

@Override
public void onBackPressed()
{
    finishAffinity();

}

【讨论】:

  • finishAffinity() 退出我的应用程序,无论我在哪个片段中。我的应用程序中只有一个活动。我已经在活动中编写了这段代码。 @NimaKhalili
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-24
  • 1970-01-01
  • 2016-07-29
  • 1970-01-01
  • 2021-12-08
  • 1970-01-01
相关资源
最近更新 更多