我搜索了解决方案并发现了很多案例(与我的情况无关或可能我不理解他们正确)。
我的情况是:
假设我有一个父 Fragment Parent;
我正在从父片段 onCreateView
创建两个子片段ChildFragment1 child1 = new ChildFragment1();
ChildFragment2 child2 = new ChildFragment2();
//My child fragment exactly looks like this
public class ChildFragment1 extends Fragment {
View rootView;
public ChildFragment1() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
rootView = inflater.inflate(R.layout.child_layout, container, false);
return rootView;
}
public void methodTobeCalled() {
//here i would like to do some changes to child view (add some views)
}
}
能通过小孩的参考访问儿童片段的方法
child1.methodTobeCalled();
但此时我无法访问我的孩子片段视图。
当我有权访问时,我想从 父级片段 调用我的 子片段 函数对孩子来说,有没有机会?
提前致谢:)
答案 0 :(得分:0)
尝试将其附加到此方法
中@Override
public void onAttachFragment(Fragment childFragment) {
super.onAttachFragment(childFragment);
}
答案 1 :(得分:0)
要从child_fragment
访问parent_fragment
次观看,请使用以下代码:
rootView = inflater.inflate(R.layout.my_fragment, container, false);
myET = rootView.findViewById(R.id.et_my);
答案 2 :(得分:0)
您可以使用 getChildFragmentManager()进行存档。
这是代码
YourFragment yourFragmentinstance = (YourFragment) getChildFragmentManager().getFragments().get(**FRAGMENT_POSITION**);
yourFragmentinstance.yourMethod();
FRAGMENT_POSITION 可能是0.1,具体取决于您的初始化。