片段堆栈:从顶部片段推送/弹出片段

时间:2013-04-11 16:33:13

标签: android stack fragment

Support4Demos功能片段堆栈......但是方便地将pop / push CountingFragment控件放在堆栈之外(所有这些都在一个布局中进行,但是推/弹按钮在下面,仍然在包含整个布局的片段中)。

如何可以使控件从顶部片段开始工作?

[编辑] 另一种看待它的方式:
我想让堆栈上的碎片表现得像活动一样,每个碎片都可以弹出,或者启动另一个 你如何改变Support4Demos中的“FragmentStack”示例,以便“Go home”/“Add new”/“Pop top”按钮位于CountingFragments中,而不是存放FragmentManager的FragmentStackSupport中? 合理的设计 - 考虑包含可点击ListView的“CountingFragments”?

怎么做?理想情况下,每个堆栈Fragment将保留对“堆栈持有者”片段或其(子)FragmentManager的引用。但是,这些不是Parcelable,而Fragment constructors must not be used(尽管其他所有工作当我这么做的时候很棒。)对它的引用也很糟糕,因为“堆栈夹”片段也可以被破坏和重新创建。


[EDIT2]
好的,这是我提出的一些想法。

  • 对于“go home”和“pop top”,我想我可以将这些(不可见)按钮添加到托管片段,然后通过getWindow().getDecorView().findViewById或其他类似的方式在托管片段中访问它们。 这太丑了。但推新的?我能想到的唯一相关的事情是在托管布局中添加一个自定义View类,它包含对FragmentManager的引用,由托管片段抓取。
  • 在某处静态地图中保存对FragmentManager的引用
  • 在托管片段中注册BroadcastReceiver,使用来自托管片段的数据发送广播,告诉它该做什么。但宿主Fragment不应该照看孩子。
  • 让每个堆叠的片段本身都是其真实内容或下一个堆叠片段的主机。这样,手头总会有一个FragmentManager(弹出除外),但每页需要2个片段,更不用说它的奇特了。

请告诉我有一种更清洁的方式。

0 个答案:

没有答案