子级fragment调用父级fragment里面的公用方法加载数据
时间: 2023-07-29 17:09:55 浏览: 43
要让子级Fragment调用父级Fragment里的公用方法,可以通过以下步骤实现:
1. 在父级Fragment里定义公用方法,例如:
```
public void loadData() {
// 加载数据的逻辑
}
```
2. 在父级Fragment里获取子级Fragment的实例,例如:
```
ChildFragment childFragment = (ChildFragment) getChildFragmentManager().findFragmentById(R.id.child_fragment_container);
```
3. 在子级Fragment里定义一个接口,用于通知父级Fragment调用公用方法,例如:
```
public interface OnLoadDataListener {
void onLoadData();
}
```
4. 在子级Fragment里实现该接口,例如:
```
public class ChildFragment extends Fragment implements OnLoadDataListener {
// ...
@Override
public void onLoadData() {
// 调用父级Fragment的公用方法
((ParentFragment) getParentFragment()).loadData();
}
}
```
5. 在父级Fragment里实现该接口,例如:
```
public class ParentFragment extends Fragment implements ChildFragment.OnLoadDataListener {
// ...
@Override
public void onLoadData() {
loadData();
}
}
```
6. 在父级Fragment里设置子级Fragment的OnLoadDataListener,例如:
```
ChildFragment childFragment = new ChildFragment();
childFragment.setOnLoadDataListener(this);
```
7. 当需要在子级Fragment中调用父级Fragment的公用方法时,只需要调用该接口方法即可,例如:
```
onLoadData();
```