Android:嵌套片段的父片段
来自嵌套片段的Android:嵌套片段的父片段,android,android-fragments,android-nested-fragment,Android,Android Fragments,Android Nested Fragment,来自嵌套片段的getParentFragment()正在返回一个null。我意识到获取一个null意味着片段被附加到活动,而不是嵌套的容器片段。但是我使用childFragmentManager将子片段显式嵌套在父片段中,因此我认为不应该得到一个null。你能告诉我我错过了什么吗 父片段 public class UsageBreakUp extends Fragment implements Filter.OnFragmentInteractionListener { .... @
getParentFragment()
正在返回一个null
。我意识到获取一个null
意味着片段被附加到活动,而不是嵌套的容器片段。但是我使用childFragmentManager
将子片段显式嵌套在父片段中,因此我认为不应该得到一个null
。你能告诉我我错过了什么吗
父片段
public class UsageBreakUp extends Fragment implements Filter.OnFragmentInteractionListener {
....
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
getChildFragmentManager().beginTransaction().add(R.id.filter, new Filter()).commit();
}
...
}
public class Filter extends Fragment {
...
public Filter() {
if (getParentFragment() == null)
Log.d(LOG_TAG, "parent fragment is null");
}
...
}
子片段
public class UsageBreakUp extends Fragment implements Filter.OnFragmentInteractionListener {
....
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
getChildFragmentManager().beginTransaction().add(R.id.filter, new Filter()).commit();
}
...
}
public class Filter extends Fragment {
...
public Filter() {
if (getParentFragment() == null)
Log.d(LOG_TAG, "parent fragment is null");
}
...
}
我在子片段的构造函数中调用了
getParentFragment()
,因此在子片段完全创建之前。将getParentFragment()
切换到onCreateView()
解决了问题。移位不是问题,因为我正在调用getParentFragment()
检查父片段是否实现了子片段交互侦听器。@SweetWisherツ, 我已经看过了。这没用。我已经用这些信息更新了我的问题。那怎么办??您确定要获取getParentFragment()NULL吗??因为您似乎正试图将片段强制转换为一个侦听器,而该侦听器正在抛出一个异常代码:UsageBreakUp=(UsageBreakUp)getParentFragment()编码>并告诉我输出结果。。后日志too@SweetWisherツ, 是getParentFragement()
管理器返回了null
。我已经编辑了我的问题以明确这一点。即使我从kotlin中的onCreateView
作为this.parentFragment
调用,我也会得到空值。有什么解决方法吗?我的错误是因为我使用了activity.supportFragmantManager
而不是childFragmentManager