Android嵌套片段渲染到主要活动

时间:2015-04-09 07:47:45

标签: fragment android-nested-fragment

如何将嵌套片段渲染为主要活动??

这是我的层次结构mainAcivity有三个动态片段

里面的RsOneFragment包含另一个childone片段......

主要活动 - > RsOneFragment - > ChildOneFragment - > ChildFirstFragment

mainActivity - > RsTwoFragment

mainActivity - > RsThreeFragment

如何将childFistFragemt渲染为mainActivity

如何实现这一点,请帮忙 这是我的代码片段

MainAcivity

fragmentOneButton.setOnClickListener(new View.OnClickListener() {
 @Override
 public void onClick(View view) {
 FragmentManager manager = getFragmentManager();
 FragmentTransaction transaction = manager.beginTransaction();
 transaction.setCustomAnimations(R.anim.enter_anim, R.anim.exit_anim);
 transaction.replace(R.id.fragmentContainer, new RsOneFragment());
 transaction.commit();
  }
 });

RsOneFragment extends Fragment:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle  savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_rsslist_overview, container,   false);
    insertNestedFragment();
    return view;
}
private void insertNestedFragment() {
 Fragment fragment = new ChildOneFragment();
 FragmentTransaction transaction   =getChildFragmentManager().beginTransaction();
 transaction.replace(R.id.child_fragment_container_two,  fragment).commit();
}

ChildOneFragment extends Fragment:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_child, container, false);
childRsOneImage = (ImageView) view.findViewById(R.id.childRsOneImage);
fragmentContainer = (FrameLayout)  getActivity().findViewById(R.id.fragmentContainer);

childRsOneImage.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View view) {
FragmentManager manager = getFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.setCustomAnimations(R.anim.enter_anim, R.anim.exit_anim);
transaction.replace(R.id.fragmentContainer, new ChildFirstFragment());
transaction.addToBackStack(null);
transaction.commit();
}
});
return view;
}

childRsOneImage点击它显示以下错误..     处理:com.example.NestedFragmentsExample,PID:1885     java.lang.IllegalArgumentException:找不到id 0x7f080055

的视图
Hope u would understand my problem...
Any help appreciated..Thanks a lot!!!

1 个答案:

答案 0 :(得分:0)

我能够自己解决问题。   而不是

FragmentManager manager = getFragmentManager();

我这样替换    FragmentManager manager = getActivity()。getFragmentManager();

并且工作正常......