问题标签 [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 投票
3 回答
1438 浏览

android - 如何在android中从BackStack加载片段

我在一个片段中有 4 个按钮。当我单击一个按钮“A”时,会加载一个片段。当点击按钮“B”时,另一个片段被加载,依此类推。我的问题是当我再次单击按钮时,新片段正在加载。我想从 backStack 加载前一个片段。

那么我该如何实现呢?

0 投票
1 回答
685 浏览

android - 如何从片段后按的android中删除菜单

我正在开发一个应该同时支持手机和平板电脑的应用程序。在这个应用程序中,我使用来自 android 的片段。

现在应用程序的流程就像

MainActivity --> Fragment1 --> Fragment2

在这个应用程序中,我想要一个仅在 Fragment2 中显示的菜单项以及活动的菜单项。

所以我尝试了一种解决方案,比如在 MainActivity 和 Fragment2 中添加全局菜单项,用 Fragment2 特定的菜单替换整个 MainActivity 的菜单。

在 onCreateView 里面,并实现这个方法。

现在它的手机布局工作得很好,但是当它涉及到平板电脑问题时。

这是我的截图。

片段 1 在此处输入图像描述

Fragment 1 和 Fragment 2 在键盘(平板模式)中按 9 时的组合。 在此处输入图像描述

最后,当我再次按 9 回到 pHone 视图时,它显示了额外的菜单项。

在此处输入图像描述

我刚刚在 Image 中标记了一个额外的菜单项。那么为什么我要来,我该如何解决呢?

0 投票
1 回答
590 浏览

android - 带有导航抽屉的片段导航

我的 Android 应用程序实际上有一点问题。

我的应用程序包含一个导航抽屉,用于在应用程序内部导航。例如

导航抽屉:

  1. 概述
  2. 搜索
  3. 用户
  4. 东西

当应用程序启动时,我将加载概述片段。如果用户单击其他项目,我将更改片段:

现在的问题是,当用户切换时,例如,从 1 > 2 > 4 > 3 并且他们按下返回键,它只会让他返回一个片段。3 > 4 > 2 > 1

所以我添加了代码,这将使他在每个 Backpress 上回到 Fragment 1。

好的,首先它很好,但现在我在更深层次上添加了更多片段,但它们不应该在背压时回到片段 1。

例如

  1. 概述(主要片段)
  2. 搜索(返回键返回片段 1)
  3. 用户(返回键返回片段 1)
  4. 东西(返回键返回片段 1)

4.1 细节(Back Key 回到 Fragment 4. Stuff) < 4.1.1 更多细节(Back Key 回到 Fragment 4.1)

如果有人知道我如何在我的应用程序中处理导航,那就太好了。

格雷茨

0 投票
0 回答
120 浏览

android - 返回堆栈未按预期工作

我有 Activity A 和 B,它们都继承自 BaseActivity 类。Activity A 处理几个片段,并从其中一个片段中启动 Activity B。在 Activiy BI 的 onCreate 方法中调用以下方法:

由 Base Activity 类接收:

因此,ExampleFragment 被添加到活动中,并通过底部动画的幻灯片显示。然后 ExampleFragment 对 Example2Fragment 调用相同的方法,但在我将其删除之前,如下所示

通过从 Example2Fragment 调用它。我想强调一下,这两个事务都被添加到了 backstack 到目前为止一切都很好,问题是当我按下 back stack 按钮时。当预期的行为登陆 ExampleFragment 时,它返回到没有片段的空白活动

后面的堆栈到底是如何工作的?我在这里缺少什么?

谢谢

0 投票
1 回答
187 浏览

android - Fragment backstack 中的 ListView 仍在调用 getView()

当我添加另一个包含另一个说的片段时,我有一个Fragment包含ListView说的内容:FragmentAListViewFragmentB

我注意到即使getView()顶部片段现在仍然调用ListViewin ,为什么以及如何防止这种行为?FragmentAFragmentB

0 投票
6 回答
10388 浏览

android - 片段BackStack。即使在 pop 之后,片段也会重叠。

问题是要正确管理回栈,以便弹出(或删除)前一个片段。问题在于它们的重叠..

程序结构如下:

  • 滑动菜单,每个部分有 3 个片段:CatalogFragment, NewsFragment, BlogFragment;
  • 每个片段都是一个带有项目的列表视图(从 JSON 解析);
  • onCatalogFragment的项目单击我需要将其替换CatalogFragmentLessonsFragment,这也是列表。

ps Items 是俄语,但我想你可以理解

在此处输入图像描述

这就是(动态)添加这些片段的方式:

这就是我在onCatalogFragmentInteraction接口中用新方法替换片段的方式:

...而且效果很好:

在此处输入图像描述

但是当我从滑动菜单片段重叠回到片段时。

在此处输入图像描述

我相信问题在于正确的 BackStack 管理,但我不知道我做错了什么。另一个建议是在这种情况下我需要以add/replace某种方式更好地使用。

我已经尝试从堆栈中按名称删除。也许需要通过 ID 删除它们?

PS告诉是否需要更多代码。提前致谢。

0 投票
0 回答
41 浏览

android - 在android中使用backstack

我在 android 的片段导航中遇到问题。我正在从一个片段导航到另一个片段,从那个片段导航到另一个片段。当我按下后退按钮时,我需要从第三个片段导航到第一个片段。我需要避免 backstack 中的第二个片段。

这是我用于将片段添加到 FragmentManager 的代码

请帮忙

0 投票
10 回答
25988 浏览

android - PopBackStack 但将第一个片段保留在 android

我正在处理片段事务,backstack是这样的:

从 fragD 回来后,我想回到 fragA

所以,我尝试了如下代码:

但它清除了所有的 backstack ,我怎样才能将第一个片段保留在 backstack 中?非常感谢

0 投票
0 回答
159 浏览

android - 按下后退按钮时看不到添加的片段

我有一个活动。当它启动时,它使用替换在 onCreate 中加载片段 A。这不会添加到后台堆栈。

然后,我希望将 Fragment B(一个叠加层)添加到前一个 Fragment 之上。这是因为我仍然希望你仍然能够看到它背后的 Fragment A,因为 Fragment B 有一个半透明的背景。这是使用 add 加载的,并添加到后堆栈。

从片段 B 我使用替换加载片段 C 并添加到后堆栈。这是因为片段 C 不像片段 B 那样叠加。当我在片段 C 中时,我想在后按时返回片段 B。我在后按时覆盖并弹出后堆栈。

问题是当我按下后退按钮时,我看到的是 Fragment A 而不是 Fragment B。即使我已经调试过并且可以在后堆栈中看到 Fragment B。为什么是这样?

0 投票
1 回答
536 浏览

android - android在弹出回栈之前显示下一个片段

我有几个片段不断相互替换(将事务添加到后台堆栈)。根据用户在某些时候的操作,我需要清除所有(或部分)以前的片段并只显示 1 个新片段。

为此,我目前popBackStack()先执行 a 清除它们,然后执行 a replace(),这按预期工作。然而,有时在我们看到新片段之前,前一个片段会闪现。我认为这是因为我在显示新片段之前先弹出回栈。

所以我只是想知道是否有一种简单的方法可以先显示新片段,然后清除以前事务的后台堆栈?