我们都知道getParentFragment
的Fragment
是API 17推出.
那么如果我们想要在API 16及更低版本中获取父片段呢(考虑到我使用native Fragment
支持FragmentStatePagerAdapter
并且嵌套片段没有问题)
还有比我更好的方法吗?
在父母:
public class ParentFragment extends Fragment { public static ParentFragment StaticThis; ... @Override public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) { super.onCreate(savedInstanceState); StaticThis = this; ... }
在孩子:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) parentFragment = (ParentFragment) getParentFragment(); else parentFragment = ParentFragment.StaticThis;
Rarw.. 5
如果你想在你从"项目"顶嘴基于您的评论ViewPager
(我猜这是Fragment
)到的容器,ViewPager
这是一个FragmentActivity
你可以用一个接口.
(1)声明接口Fragment
本身或作为单独的文件(2)"初始化"片段的onAttach方法中的接口.例如
private SomeInterface blah; @Override public void onAttach(Activity activity){ blah = (SomeInterface) activity; }
(3)在你的实现界面FragmentActivity
.
然后你可以回复FragmentActivity
你的Fragment
.从那里你可以调用你想要的任何方法FragmentActivity
,如果你获得了加载到你的ViewPager
任何其他片段的引用,请调用其中的任何公共方法Fragment
.这允许您在片段和容器之间进行通信而不会发生内存泄漏.
如果你想在你从"项目"顶嘴基于您的评论ViewPager
(我猜这是Fragment
)到的容器,ViewPager
这是一个FragmentActivity
你可以用一个接口.
(1)声明接口Fragment
本身或作为单独的文件(2)"初始化"片段的onAttach方法中的接口.例如
private SomeInterface blah; @Override public void onAttach(Activity activity){ blah = (SomeInterface) activity; }
(3)在你的实现界面FragmentActivity
.
然后你可以回复FragmentActivity
你的Fragment
.从那里你可以调用你想要的任何方法FragmentActivity
,如果你获得了加载到你的ViewPager
任何其他片段的引用,请调用其中的任何公共方法Fragment
.这允许您在片段和容器之间进行通信而不会发生内存泄漏.