要调用新片段,我正在使用.add(R.id.container, fragment)
或.replace(R.id.container, fragment)
。
我面临崩溃
java.lang.IllegalArgumentException找不到id
的视图
修复后只需更换
.add(R.id.container, fragment)
至.add(((ViewGroup)getView().getParent()).getId(), fragment)
现在我正考虑在我的应用中尽可能地使用((ViewGroup)getView().getParent()).getId()
以避免其他崩溃。
这是好主意吗?如果我使用这种方法会出现哪些问题?安全吗?有没有更好的方法?
答案 0 :(得分:1)
更好的方法是:
当您要添加/替换片段时,首先检查是否
容器是否为空,然后执行事务。
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
FrameLayout frame=(FrameLayout)getActivity().findViewById(R.id.reg_frame_container);
if(frame!=null) {
fragmentManager.beginTransaction().replace(R.id.reg_frame_container, new SecurityQuestions()).commit();
}
else {
fragmentManager.beginTransaction().replace(R.id.frame_container_menu, new SecurityQuestions()).commit();
}
OR
如果方法正常,您可以使用您的方法,但请记住检查是否为空状态。
这适合我。
希望这会有所帮助:)