gpt4 book ai didi

android - 获取父 fragment API 16

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:01:15 24 4
gpt4 key购买 nike

我们都知道FragmentgetParentFragment是API 17引入的。

那么如果我们想在 API 16 及以下版本中获取父 fragment 怎么办(考虑到我使用支持 FragmentStatePagerAdapter 的原生 Fragment 并且嵌套 fragment 没有问题)

还有比我更好的方法吗?

在 parent 中:

public class ParentFragment extends Fragment {

public static ParentFragment StaticThis;
...

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

StaticThis = this;

...
}

在 child 身上:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1)
parentFragment = (ParentFragment) getParentFragment();
else
parentFragment = ParentFragment.StaticThis;

最佳答案

根据您的评论,如果您想从 ViewPager 中的“项目”(我猜这是一个 Fragment)返回到ViewPager 这是您可以使用的一个 FragmentActivity 接口(interface)。

(1) 在 Fragment 本身或单独的文件中声明接口(interface)(2) 在 fragment 的 onAttach 方法中“初始化”接口(interface)。例如

 private SomeInterface blah;

@Override
public void onAttach(Activity activity){
blah = (SomeInterface) activity;
}

(3) 在您的FragmentActivity 中实现接口(interface)。

然后您可以从您的 Fragment 回调到 FragmentActivity。从那里您可以在 FragmentActivity 中调用您想要的任何方法,或者,如果您获得对加载到您的 ViewPager 中的任何其他 fragment 的引用,则调用任何公共(public)方法在该 Fragment 中。这允许您在 fragment 和它们的容器之间进行通信而不会发生内存泄漏。

关于android - 获取父 fragment API 16,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20376297/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com