问题标签 [android-nested-fragment]

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 回答
3596 浏览

android - Android FragmentTab 主机和 Fragments 内的 Fragments

我有一个具有如下层次结构的应用程序:

所有片段视图都从资源中膨胀。

当应用程序启动时,一切都会出现并且看起来很好。当我从第一个选项卡切换到另一个选项卡并再次返回时,我得到膨胀异常,试图重新创建选项卡 1 的视图。

再深入一点,这就是正在发生的事情:

  • 在第一次加载时,扩展拆分器视图会导致其两个子片段被添加到片段管理器中。
  • 从第一个选项卡切换时,它的视图被破坏,但它的子片段留在片段管理器中
  • 在切换回第一个选项卡时,视图会重新膨胀,并且由于旧的子片段仍在片段管理器中,因此在实例化新的子片段时会引发异常(通过膨胀)

我通过从片段管理器中删除子片段(我正在使用 Mono)解决了这个问题,现在我可以毫无例外地切换选项卡。

所以我有几个问题:

  1. 以上是正确的方法吗?
  2. 如果没有,我应该怎么做?
  3. 无论哪种方式,保存实例状态如何与所有这些相关联,以便在切换选项卡时不会丢失视图状态?
0 投票
1 回答
3527 浏览

android - 被替换的 ViewPager 和 BackStack 的生命周期?

我真的搞砸了 android ViewPager 的生命周期,我开始认为我的应用程序结构有问题。因此,如果我可以执行以下操作,我想确认一下:

  • 我有一个显示一些标签的应用程序。其中一个选项卡显示了一个 ViewPager,其中有两个 ListFragment。这些 ListFragment 是在 ViewPager 的 onCreate 事件中创建的。
  • 当您单击其中一个 ListFragments 中的项目时,它会将整个 ViewPagerFragment 替换为不同的片段(这是另一个 ListFrament)。

这是我用新的 ListFragment 替换 ViewPager 的代码

从那里开始,一切正常。但是,如果用户单击后退按钮,我会得到以下情况:

  • ViewPager 重新加载正常(来自 onCreateView),但里面的 ListFragment 不会显示。看起来我的 ListFragment 的对象还活着,但似乎他们失去了视图,并且没有调用 onCreateView 来重新创建它(因为在 ViewPager 出来时对象没有睡觉)。

我暂时不在这里发布更多代码,因为我的目的是了解我正在尝试做的事情是否可以以 Android 的思维方式进行。我是否必须与 Android SDK 对抗才能归档我想做的事情?

0 投票
4 回答
13272 浏览

android - 如何在actionBar android中从Fragment显示DialogFragment

我将 Tabs ActionBar 与 Fragments 一起使用。在一个片段内我有按钮。我想在DialogFragment按下按钮时显示一个(在我的片段内)。我怎样才能做到这一点?

这是我的代码

0 投票
5 回答
74508 浏览

android - 不使用支持库的 Android 4.0、4.1 (<4.2) 中嵌套片段的最佳实践

我正在为 4.0 和 4.1 平板电脑编写一个应用程序,我不想为此使用支持库(如果不需要),但只使用 4.x api。

所以我的目标平台非常明确地定义为:>= 4.0 和 <= 4.1

该应用程序具有多窗格布局(两个片段,左侧一个小片段,右侧一个内容片段)和一个带有选项卡的操作栏。

与此类似:

在此处输入图像描述

单击操作栏上的选项卡会更改“外部”片段,然后内部片段是具有两个嵌套片段的片段(1. 左侧小列表片段,2. 宽内容片段)。

我现在想知道替换片段尤其是嵌套片段的最佳做法是什么。ViewPager 是支持库的一部分,此类没有本机 4.x 替代方案。在我的意义上似乎被“弃用”。- http://developer.android.com/reference/android/support/v4/view/ViewPager.html

然后我阅读了 Android 4.2 的发行说明,关于ChildFragmentManager,这将是一个很好的选择,但我的目标是 4.0 和 4.1,所以这也不能使用。

ChildFragmentManager仅在 4.2 中可用

不幸的是,即使在整个 Android 开发人员指南中,也几乎没有任何好的示例可以展示在没有支持库的情况下使用 Fragment 的最佳实践;尤其是关于嵌套片段的任何内容。

所以我想知道:如果不使用支持库和它附带的所有东西,就不可能编写带有嵌套片段的 4.1 应用程序吗?(需要使用 FragmentActivity 而不是 Fragment 等?) 或者最佳实践是什么?


我目前在开发中遇到的问题正是这种说法:

Android 支持库现在还支持嵌套片段,因此您可以在 Android 1.6 及更高版本上实现嵌套片段设计。

注意:当布局包含<fragment>. 仅当动态添加到片段时才支持嵌套片段。

因为我在 XML 中定义了嵌套片段,这显然会导致如下错误:

目前,我自己总结:即使在 4.1 上,当我什至不想针对 2.x 平台时,如果没有支持库,截图中所示的嵌套片段是不可能的。

(这实际上可能更像是一个 wiki 条目而不是一个问题,但也许其他人之前已经管理过它)。

更新:

一个有用的答案是:Fragment Inside Fragment

0 投票
2 回答
12675 浏览

android - android.support.v4.app.Fragment:未定义的方法 getChildFragmentManager()

我正在使用ActionBarSherlock并且ViewPageIndicator我尝试实现嵌套片段,但该方法getChildFragmentManager()在我的android.support.v4.app.Fragments.

没有其他错误,ABS 和 VPI 按预期工作。

我没有使用支持库 v13,我使用的是最新版本,并且我已经清理了我的项目。一个正常人android.app.Fragment不会抱怨getChildFragmentManager()

我还尝试重新排列支持库依赖项(ABS、VPI 和引用它的主项目中的 android-support-v4.jar,或作为外部 jar 的 android-support-v4.jar),但getChildFragmentManager()仍未定义。

如果我删除了 VPI,则getChildFragmentManager()可以,但 VPI 当然会停止工作。所以,依赖项一定有问题,但我没有想法可以尝试。

任何帮助将非常感激!

0 投票
4 回答
16987 浏览

android - 从 FragmentTabHost 获取对嵌套片段的引用

在我的应用程序中,我使用一个Activity包含一个FragmentFragmentTabHost因此它的所有选项卡都是nested Fragments.

Activity包含 aFragment和 的an 内部nested Fragment,我们可以使用onAttachedFragment().

但是如何获得对nested Fragmentfrom的引用FragmentTabHost

0 投票
1 回答
187 浏览

android - 从设置更改刷新片段视图

我想要完成的是当有人从设置中返回并更改他们的偏好时刷新我的视图。我认为这会起作用,但事实并非如此。关于我如何做到这一点的任何想法?

0 投票
1 回答
721 浏览

java - 带有 SherlockFragment 的 ViewPager 始终为空

目前我有一个包含 SherlockFragment 的选项卡主机活动。在这些选项卡之一(片段)中,我想实现一个 ViewPager 来显示图像(ImageView)。我创建了一个 FragmentPagerAdapter 和 Fragment 以将其添加到 ViewPager 中。但是当我运行应用程序时,我的 ViewPager 显示为空,其中没有图像。

这是我的课程:

BonusFragment.Java

BonusPagerAdapter.Java

BonusImageFragment.Java

现在为什么我的 ViewPager 总是显示为空?

0 投票
4 回答
12926 浏览

android - 如何创建包含片段的 Android 选项卡式对话框?

谁能指点我一个例子或告诉我如何Tabbed Dialog在Android中创建一个简单的每个选项卡的内容Fragments?我发现的所有示例/教程都是关于片段和标签的,但没有特定于DialogFragments.

的文档FragmentTabHost展示了如何使用getChildFragmentManager(). 我假设当片段为 a 时这也应该有效,DialogFragment但是当我尝试它时,我得到:

这是我设置视图的代码(然后传递给AlertDialog.setView()):

0 投票
3 回答
12490 浏览

android - TabFragment 中的 ViewPager 未再次加载

我正在尝试制作一个在 Fragment 中具有 a 的应用程序,ViewPager该 Fragment 是TabHost. 一切正常。我有我的标签栏,我可以切换标签。当我使用 切换到选项卡时ViewPager,所有内容都正确显示。

但是,只要我离开此选项卡ViewPager并返回此选项卡,我的内容就不会显示。如果我滚动到一边两次,我确实会看到我的下一张图像,如果我返回两次,我也会看到图像已加载(可能是offscreenloaded)。

看到TabFragment当我返回它时我正在被重新实例化,但其中的片段ViewPager不是。

应用程序的模型