Activity中加载不同的fragment / Fragment中加载不同的fragment
主Activity中加载(切换)多个fragment(也可以理解为activity跳转fragment)或主fragment中加载(切换)多个fragment
- Activity布局中要有一个fragment布局空间,比如id名为main_ FrameLayout
- 写两个fragment类继承自fragment,比如
fragmentaextends Fragment (这个里面加载你的view和写你在这个fragment中的事件)
fragmentb extends Fragment(同理)
注意:view =inflater.inflate(R.layout. fragmenta_layout, container, false);这句话一定要紧挨在oncreatview方法下面!,不然报错你半天还找不到,我当时就是半天找不到!!
- 在主Activity的点击事件(触发事件)中比如你想点击A这个按钮加载fragmenta
执行下面代码
fragmenta fm1=new fragmenta ();
FragmentManagerFM = getSupportFragmentManager();
- FM.beginTransaction().replace(R.id.main_FrameLayout, fm1).commit();
4) 按钮B.C等等同理,这样就可以实现在一个Activity页面加载不同的fragment,或者从一个Activity跳转到不同的fragment
fragment到Activity
1) Fragment到activity跳转即为普通intent跳转
2) 在当前fragment页面执行下面代码:
3) Intent intent = new Intent(getActivity(),MainActivity.class);
fragment到fragment
- 如果两个fragment依赖于一个Activity,比如壹的情况,则可以用切换的方法
- @Override//核心代码
- 2 public void onClick(View v) {
- 3 //获取fragment的实例
- 4 Fragment fragment=new Fragment();
- 5 //获取Fragment的管理器
- 6 FragmentManager fragmentManager=getFragmentManager();
- 7 //开启fragment的事物,在这个对象里进行fragment的增删替换等操作。
- 8 FragmentTransaction ft=fragmentManager.beginTransaction();
- 9 //跳转到fragment,第一个参数为所要替换的位置id,第二个参数是替换后的fragment
- 10 ft.replace(R.layout.fragment1_layout,fragment);
- 11 //提交事物
- 12 ft.commit();
- 13 }
2) 如果两个fragment依赖于不同的activity,那就直接avticity跳转。
时间: 2024-10-13 19:13:32