1、add,show,hide,replace方法
针对在一个Activity中的某个Layout中切换Fragment,,无非两种方法:
1)使用replace方法把原有的Fragment替换掉,会进行销毁和生成新的实例,如果旧Fragment无须再次使用,可以使用replace方法将其销毁
2)使用hide和show方法,把已经添加过的Fragment再次显示出来,如果Fragment需要重用或者不断切换,可以使用该方法。
区别:add方式实现fragment的效果就是:切换fragment时不会重新创建,是什么样子切换回来还是什么样子;用replace的效果就是:切换fragment时每次都会重新创建初始化
2、startActivityForResult
在Fragment中使用startActivityForResult的时候,不要使用getActivity().startActivityForResult,而是应该直接使startActivityForResult()。具体其他参考文章
3、多个之间跳转menu显示不全问题
getActivity().setSupportActionBar(mToolbar);
一开始使用的Activity 这样使用没有问题,后面fragment 也使用这样的方式,出现多次跳转不显示menu,采用下面的方式可以解决掉。
mToolbar.inflateMenu(R.menu.menu);具体参考文章
4、FragmentTransaction只能使用一次,
每次使用都要调用FragmentManager 的beginTransaction()方法获得FragmentTransaction事务对象哦!
5、getActivity(),getContext空指针
一般是Fragment已经onDetach()了宿主Activity,所以大多少情况下,使用构造函数传递进来
public ProductFragment(Context context) {
this.context = context;
}