getParentFragment API 16

Moh*_*hin 11 android android-fragments

我们都知道getParentFragmentFragment是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;

...
}
Run Code Online (Sandbox Code Playgroud)

在孩子:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1)
         parentFragment = (ParentFragment) getParentFragment();
else
         parentFragment = ParentFragment.StaticThis;
Run Code Online (Sandbox Code Playgroud)

Rar*_*arw 5

如果你想在你从"项目"顶嘴基于您的评论ViewPager(我猜这是Fragment)到的容器,ViewPager这是一个FragmentActivity你可以用一个接口.

(1)声明接口Fragment本身或作为单独的文件(2)"初始化"片段的onAttach方法中的接口.例如

 private SomeInterface blah;

 @Override
 public void onAttach(Activity activity){
    blah = (SomeInterface) activity;
 }
Run Code Online (Sandbox Code Playgroud)

(3)在你的实现界面FragmentActivity.

然后你可以回复FragmentActivity你的Fragment.从那里你可以调用你想要的任何方法FragmentActivity,如果你获得了加载到你的ViewPager任何其他片段的引用,请调用其中的任何公共方法Fragment.这允许您在片段和容器之间进行通信而不会发生内存泄漏.