- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在使用 fragment 实现菜单导航。所以我从主页开始,然后用户可以导航到不同的部分和每个部分的详细信息。
当用户更改部分时,我会在 fragmentmanager backstack 上调用 pop 直到到达主页,然后加载新部分。
这一切都按预期工作。但是我遇到了这个问题:
我已经迭代了后台堆栈并打印了每个 fragment ,但它不是带有菜单的 fragment 。
我在 onResume() 方法上放置了一个调试标记(标记了 setHasOptionsMenu(true)
)并且它确实进入了这里,所以 Fragment 它仍然在某处。
我想知道我是否做错了什么,我该如何解决,thx
更新:
我正在使用这段代码加载新 fragment
fm.beginTransaction()
.add(container, sectionFragment.getFragment())
.addToBackStack(sectionFragment.getFragmentName())
.commit();
对于删除:
private void clearStack(){
int count = fm.getBackStackEntryCount();
while(count > 1){
fm.popBackStack();
count--;
}
}
注意 1: 我正在使用添加而不是替换,因为我不想在从详细信息部分返回时丢失 fragment 的状态。当我加载另一个不同的部分时,我调用 clearStack 将堆栈弹出到 1,然后加载新 fragment 。最后,我调用 executePendingTransactions() 以完成从事务中删除 fragment 。
注意 2: 我看到它正在进入我的 fragment onDestroy() 方法,因此它应该被销毁。但是我不知道为什么当主要 Activity 恢复时它会再次被调用。
最佳答案
我发现问题不在添加和删除堆栈 fragment 的逻辑上。
问题是一些 fragment 在其中加载了另一个 fragment (它有 ViewPager 组件)。然后我认为当 fragment 被移除时,这些 fragment 也被移除。
仅当您使用 getChildFragmentManager()
方法时才会出现这种情况。在其他 fragment 中加载 fragment 时必须使用此方法。如果不是,则 fragment 与 fragment Activity 相关联。
关于android - FragmentManager popBackStack 不删除 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23499198/
我正在尝试在使用 androidX 的应用中进行设置。 我的问题是,当我尝试使用 PlaceAutocompleteFragment 时出现错误,因为它是来自 android.app.fragment
是否有人注意到 Android 11 的生命周期发生了任何明显的变化? 我的应用程序在 Android 11 之前的操作系统上运行良好,但在我的 Pixel 4 上每次都因错误而崩溃: E/Andro
我只是将项目移至androidX。我使用android studio refactor-> upgrade到androidX。 TargetSDK已经28岁了,并且工作正常。所以没想到会有很多错误。但
我正在学习 Android 开发。我卡在了本应非常简单的事情上。 我正在创建一个包含一个 Activity、2 个 fragment 和 1 个界面的应用。 android:minSdkVersion
我正在尝试获取一个对话框来警告用户应以横向模式查看屏幕。我有一个对话框类和我的 Activity 调用该对话框,但它提示 show(FragmentManager, String) 不适用于 show
我有一些嵌套的 fragment ,我想在 FragmentTabHost 内显示一个 Fragment。 在 FragmentTabHost setup(...) 方法中,第二个参数应该是 Frag
伙计们。 我为 Android API 14 及更高版本开发了一个应用程序,但我想使用 Android 支持库中的 ViewPager。 ViewPager 需要在构造函数中使用 android.su
FragmentManager manager = getFragmentManager(); 报错 required : android:support.v4.FragmentManager fou
我正在使用平板电脑的 Fragments 创建一个应用程序。到目前为止,我已经在左侧创建了一些按钮,并且在单击按钮时会出现 fragment 。 但我的 MainActivity.java 文件出现错
错误 错误类型不兼容:android.app.FragmentManager 无法转换为 android.support.v4.app.FragmentManager 让我抓狂。 在我的应用程序中,我
我收到以下错误 Type mismatch: cannot convert from android.app.FragmentManager to android.support.v4.app.Fra
编辑:这似乎只发生在我之前的 Activity 是横向的,并且 setRequestedOrientation() 是纵向的,这可能是什么问题? 我在一个 Activity 中有一个代码,它启动一个对
获取不兼容类型的 FragmentManager 的持续错误。需要支持库才能工作,但无法弄清楚。 Android Studio 说它需要支持导入,该支持导入就在那里,但找到了 androidx 导入。
更新: 我认为泄漏来自 getActivity().getSupportLoaderManager().restartLoader(getLoaderId(), null, this);我的对象实现
我尝试创建一个 Android 应用程序。在 Android Studio 中使用选项卡。我遇到了以下问题:我的所有 fragment 导入都导致了错误 Cannot Resolve Symbol '
使用我的 Fragment 类中的这段代码: FragmentManager fm = getFragmentManager(); 我得到了空值。为什么?我在android doc中找到了那句话: N
有没有办法从应用程序上下文中获取 FragmentManager?我想使用 ImageLoader 或 BitmapFun 来存储我从服务器下载的一些位图。这两个类都需要 FragmentManage
我对 FragmentManager 后台堆栈背后的基本原理有点困惑。 鉴于一个 Activity 有两个用于容纳不同 fragment 的容器:问题是当使用 fragment 事务将 fragmen
所以我在将 ViewPager 与 FragmentStatePagerAdapter 一起使用时遇到了这个问题然后我试图选择当前页面(即向用户显示第二页而不是第一页)我不时得到这个异常. 问题似乎是
在我的应用程序中有一个FrameLayout,我在上面添加了各种 fragment FragmentManager fm = getSupportFragmentManager(); Fragment
我是一名优秀的程序员,十分优秀!