- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
更重要的是,在 onCreate/onCreateView 中,我已经调用 FragmentManager.findFragmentByTag() 来查找我的 fragment 的任何现有实例,它似乎找到了它。
那么putFragment/getFragment有什么意义呢?它会节省一些额外的东西还是会导致其他生命周期的事情发生?它只是做或多或少相同事情的 findFragmentByTag() 的替代方法吗?因为在我看来, fragment 会自动为我保存,而无需使用 FragmentManager.putFragment()。
最佳答案
So what is the point of putFragment/getFragment?
根据目前的实现,什么putFragment(Bundle bundle, String key, Fragment fragment)
do 是将 fragment 的索引放入带有参数键的包中。然后getFragment(Bundle bundle, String key)
获取同一索引处的 fragment ,可以使用相同的键从 bundle 中检索该 fragment 。 Fragment 只有在添加到 FragmentManager 后才会在 FragmentManager 中有其索引,因此只有在添加后才能在 Fragment 上调用 putFragment()。
Does it save something extra or cause additional lifecycle stuff to happen?
它只保存一个 fragment 的索引,没有其他东西,也不会导致任何额外的生命周期东西。
Is it just an alternative to findFragmentByTag() that does more or less the same thing?
是的,我认为是。
按照目前的实现,putFragment/getFragment的作用可以用findFragmentByTag()
来实现也。但是 putFragment/getFragment 的功能非常有限,因为你不能在没有 bundle 参数的情况下使用它们,这意味着你必须调用 putFragment()
在onSaveInstanceState()
.
关于android - FragmentManager.put/getFragment 与 findFragmentByTag,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27240756/
我正在尝试在使用 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
我是一名优秀的程序员,十分优秀!