一、对fragment的了解
fragment是activity的一部分,一个activity可以由多个fragment组成。fragment拥有自己的生命周期和接收、处理用户的事件,但是它的生命周期受它所在的activity影响。
二、如何使用
新建一个类继承Fragment,重写onCreateView(),这个方法里面写fragment的内容,最后return一个view出来;
业务逻辑都可以写到fragment这个类里面,这样activity里面就会看起来很干净;
1)静态
在activity对应的xml中写<Fragment name="fragment的类全名">;
2)动态
在activity对应的xml中写一个容器如LinearLayout\FrameLayout等,设id为blankFragment;
在activity类继承fragmentActivity;
添加成员变量 FragmentManager fm;FragmentTransaction ft;
fm = getSupportFragmentManager();
实例化自己的fragment类;
fm.beginTransaction().replace("blankFragment",刚刚实例化后的对象).commit();
完成替换;
三、fragment优化
fragment除了replace方法外还有其他操作方法。
idAdded()
add()
remove()
hide()
show()
replace()其实就是remove()与add()的结合。
当频繁切换fragment或者fragment每次出现时上面的业务逻辑都不需要初始化的时候,我们可以选择用
hide()show()来完成。
在调用show()或者hide()的时候要判断下这个fragment是否被fm管理着,调用isAdded()来判断。
四、通信
1)
如果要传递dto,在安卓里面建议让dto实现Parcelable接口;
bundle.putParcelable("dto",dto);
fragment.setArguments(Bundle b);
在fragment里面调用getArguments()获得bundle;
2)
用的最多的一招:接口回调。