Fragment的动态添加

来源:互联网 发布:网络微信图片发不出去 编辑:程序博客网 时间:2024/05/16 08:55

要完成动态的添加Fragment须执行下面几步:

1.创建一个类继承Fragment,实现 onCreateView方法

2.创建布局文件被fragment加载,当作fragment的布局

eg.

public class fragment1 extends Fragment {public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View v=inflater.inflate(R.layout.fragment1, container,false);return v;}}

创建了一个fragment1 继承Fragment 并实现onCreateView方法,在方法内inflate一个布局文件,创造一个view并返回

3.主activity中获得 FragmentManager ;

FragmentManager fm=getFragmentManager();

顾名思义 FragmentManager 是对fragment管理的对象

4.接着用此对象开启一个事务

FragmentTransaction ft=fm.beginTransaction();
5.fm身上有三个简单方法

add(),remove(),replace()
add(containerViewId,fragment, tag):


containerViewId代表盛装fragment的容器,一般是一个布局

fragment代表将要添加的fragment

tag 为这个添加进去的fragment起的标签

remove(fragment);

移出参数所指的fragment

replace(containerViewId,fragment)

移出容器中所有的fragment ,并且把fragment   add进去

6.提交事务

ft.commit();


这就完成了基本的添加操作


注意:

如果在一个layout中添加一个fragment再添加一个会怎么样?

第二次添加的fragment会叠加在第一次添加的上面,当第二个被销毁时,第一个会露出来才可以被看到


replace()的bug

在安卓4.4上测试过,如果几个fragment叠加在一个layout里面,调用replace方法,不能正确的移出所有的fragment

在安卓7.1.2上测试,可以正确的移出


原创粉丝点击