问题标签 [fragment-backstack]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1027 浏览

android - 隐藏 Backstack 中的所有 Fragment 但仍然可以返回

我的活动中有一个小布局,我根据用户在应用程序中导航添加片段。

假设用户这样导航:

活动 -> 片段 A -> 片段 B -> 片段 C -> 按钮单击

我希望能够隐藏片段并再次显示空白活动。

这就是我将片段添加到活动的方式:

要清除所有碎片,我使用:

getSupportFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);

但是,有没有办法清除碎片,如果用户按下回,他们将能够返回到 Fragment C(而不是退出应用程序)?

0 投票
1 回答
202 浏览

android - 方向更改后Android片段回栈动画失败

我有一个活动,它承载两个片段,一次只显示一个。实际上,通过不同的环境条件,用户应该能够在任何给定时间在两者之间切换。

有一个LoginFragmentwhich 是用户在登录时看到的第一件事,并且在用户登录并且我们看到他们的帐户被锁定(自然)之后LockoutFragment可能会替换它。LoginFragment

这是典型的情况,但是有一种情况LockoutFragment是首先呈现的,如果说,用户正在使用应用程序并且他们的帐户由于某种原因被锁定,我们重新打开主机活动(LoginActivity),显示LockoutFragment, 但是给他们一个“返回登录”按钮,它可以切换LoginFragment(也很自然)的外观。

因此,我的目标是允许用户在两​​个片段之间切换,以先显示的为准。我的宿主活动使用以下函数来实现这个效果:

这些功能像魅力一样协同工作,但有一个例外:当应用程序首次启动后,用户

  1. 尝试登录,
  2. 被带到锁定片段,
  3. 重新定向设备,并且
  4. 导航回登录片段,

登录片段现在存在但不可见- 好像popEnter动画从未播放过。我知道它存在,因为我仍然可以与它互动。

还值得注意的是:

  • setRetainInstance(true)两个片段
  • 在用户从锁定片段重新定向设备时发生
  • 我在模拟器和运行 Lollipop 的设备上都试过这个,结果相同

重新定向后后堆栈是否可能被破坏?

谢谢!

0 投票
0 回答
545 浏览

android-fragments - Android backstack 不适用于同一活动中的多个片段

首先非常感谢所有支持像我这样的新手。

我正在创建一个应用程序,其中我有以下场景:-

  1. 我有 HomeScreenActivity,它有代表类别的 gridview。
  2. 当我按下任何网格项目时,会加载一个名为“SubcategoryFragment”的片段,该片段在网格视图中显示子类别。
  3. 现在,当我单击任何子类别时,它会加载另一个名为“DetailsFragment”的片段。
  4. 在 DetailsFragment 的 onCreateView 方法中,我检查我要显示的数据是否存在于 DB 中。如果数据在数据库中,那么它只是在列表视图中加载。当我按下返回键时,一切正常,没有任何问题。
  5. 但是如果数据库中不存在数据,那么我执行一个从 Web 服务器获取数据的异步任务。数据来并正确显示。但是现在如果我按下后退按钮,它会显示空白屏幕。

我希望按下后退按钮时出现子类别片段,但它显示空白屏幕。

我搜索了很多并在过去 3 天里苦苦挣扎,但我无法弄清楚发生了什么。

请帮我。我在下面发布我的代码:-

HomeScreenActivity.java

HomeFragment.java

SubcategoryFragment.java

详细信息Fragment.java

我试过的: -

  1. OnBack 按片段显示空白屏幕
  2. 在按下后退按钮的片段中,活动为空白

请帮我追踪问题并解决它。

抱歉,如有任何打字或格式错误。

0 投票
3 回答
104 浏览

android - 使用 Fragment backstack 查询

假设我有 2 个片段:A 和 B

片段 A 在顶部。现在,我添加片段 B,将 A 保留在后台堆栈中。

现在当按下后退按钮时,B 被移除并且 A 出现在顶部。

A 中是否有任何回调方法在此时被调用?

注意:onResume 与活动密切相关,因此不会被调用。只有在调用活动的 onResume() 时才会调用 Fragment 的 onResume()。

0 投票
3 回答
3960 浏览

android - 通过后退按钮从子片段导航回父活动

我有一个主要活动和 2 个片段。在我的主要活动中,我有导航抽屉,可以浏览片段。我像这样处理按下的后退按钮:

在两个片段之间导航后,当我点击后退按钮时,我从后台堆栈中获取最后一个片段。但是,从片段导航到另一个片段应该是不可能的。

更清晰:

我有一个活动(带有导航抽屉)和 2 个片段。从导航抽屉中,我可以根据需要多次访问这两个片段。但是当我点击后退按钮时,我总是想回到main_activity.xml.

0 投票
2 回答
1821 浏览

android - Android - 从后台堆栈返回时的空白片段

我有一个显示属性列表的视图,在屏幕底部有一个按钮,可以打开一个包含 MapView 的片段。

我的 Properties 片段的 onCreateView 方法如下

searchProperties();负责调用 Web 服务并填充ArrayAdapter.

问题是,当我打开MapFragment然后按后退按钮时,我Property fragment是空白的,按钮不响应onClick事件。

我尝试调试并看到onCreateView()返回时正在调用它Property fragment,但是按钮不再起作用并且listview无处可见。

我究竟做错了什么?

0 投票
2 回答
475 浏览

java - Android backstack 在 onCreate 方法中为空

我在主要活动中有两个片段(第一个片段,第二个片段)。onCreate我用主要活动方法中的容器视图替换了第一个片段。

在第二个片段中有一个ListView,当点击一个项目时,一个新的活动作为一个细节开始。

但是当我回到主 Activity 时,由于 It is in onCreate 事件,第一个片段显示。

我尝试使用 backstack,就好像 backstack 有我的最后一个片段然后显示它一样。但在 onCreate 方法中,返回堆栈始终为空。

这是我的onCreate和 replaceFragments 方法代码:

onCreate当来自另一个活动时,如何在方法中取回堆栈值?

我的屏幕 屏幕

0 投票
1 回答
1297 浏览

android - 使用包含选项卡的片段处理后台堆栈

我正在尝试创建一个 Android 应用程序,其中包含一个带有容器和导航抽屉的单个活动。最初的空容器加载片段,其中有ViewPager一个选项卡布局,我在其中加载一个片段FragmentTransaction

我在 v7ActionBar中使用 v4 片段和 v7 ActionBarActivity

每个加载的片段都是一个片段,它只加载具有实际可用性的其他片段的选项卡。这种选项卡加载片段的示例:

我面临的问题是backstack。当一个片段被添加到 backstack 并且我按下后退按钮时,应用程序确实像我想要的那样返回到上一个片段,我看到了选项卡布局本身,但是选项卡的内容是空的,就像没有加载任何内容一样那个标签。发生这种情况时,我仅在使用导航抽屉再次选择该屏幕时才设法重新加载选项卡的内容。

我试过覆盖onBackPressed活动中的:

但是就像我说的那样,就像我要回到上一个片段,但是该片段中的选项卡没有重新绘制它拥有的片段。

可以做些什么来解决这个问题?

由于我确实看到了 backstack 中原始片段的选项卡布局,但没有看到选项卡内的片段,我是否可能只需要以某种方式刷新选项卡内容意味着重新绘制它?如果我能做这样的事情,那我该怎么做呢?

0 投票
2 回答
716 浏览

android - 片段和后台有时会搞砸

我有一个带有片段容器和 NavigationDrawer 的活动。如果我选择抽屉中的一个项目,我会调用updatePage(index).

updatePage(0)如果我创建活动并启动我的活动,我也会打电话savedInstanceState == null

一个片段有一个子片段,因此它只是用子片段替换自己并将子片段添加到后台堆栈,以便用户可以导航回前一个片段。在这个片段中,我直接调用以下代码:

为什么有时删除旧片段不起作用?我得到重叠的片段,但只是有时。

我的活动updatePage功能如下所示:

0 投票
3 回答
4320 浏览

android - 如何从 backstack 中删除 Fragment

有一个带有 5 个片段的 Activity(向导)。

在 Success 片段上点击 SubmitMore 按钮后,我想从后台删除 Frag1、Frag2 和 SubmitFrag 并返回 StartFrag。怎么做?