好记性不如烂笔头,没事记录下,下次需要可以直接就能看了。
使用fragment需要记住这4个步骤
1.获取FragmentManager管理器,有个v4包下的,一般都用这个 getSupportFragmentManager();
2.开启事务,fragmentManager.beginTransaction()
3.添加fragment 或者替换 add 和 replace
4.最后一步就是提交事务。 commit();
Fragment不像activity那样,想关闭的时候直接finish, Fragment不能直接finish,如果想关闭指定的fragment那就需要设置一个tag标记。通过remove移除 代码:
<span style="white-space:pre"> </span>//获取fragmentManager管理器
FragmentManager fragmentManager = getSupportFragmentManager();
//开启事务
FragmentTransaction beginTransaction = fragmentManager.beginTransaction();
//关闭哪个页面就设置个tag comm算是个标记 replace替换和添加add,当然还有显示和隐藏,这里先不说。
//FragmentTransaction comm = beginTransaction.replace(R.id.fragment_f, fragment1, "comm");
//这里面有三个参数, 1.一个fragmentLayout布局, 2.要显示的fragment, 3.就是设置tag(comm就是为当前的fragment设置tag)
FragmentTransaction comm = beginTransaction.add(R.id.fragment_f, fragment1, "comm");
//提交事务
comm.commit();
tag设置好之后,不管你现在 在哪个fragment页面,只要在想关闭comm这个标记的fragment,,,就在需要通过comm这个标记获取到被标记的fragment
需要5个步骤。 获取管理器 - findFragentByTag获取被标记的fragment - 开启事务 - 我要干吗?remove指定的fragment - commit提交。
<span style="white-space:pre"> </span>//获取管理器
FragmentManager manager = getActivity().getSupportFragmentManager();
//通过FragmentManager管理器获取被标记的fragment
Fragment fragment1 = manager.findFragmentByTag("comm");
if (fragment1 != null) {
//isMarket = true;//这行忽略
//开始事务 通过remove清除指定的fragment,并提交
manager.beginTransaction().remove(fragment1).commit();
只要知道如何关闭指定的fragment页面,其他的业务逻辑可以根据需求去实现。 其实就这么 几个步骤。