个人理解:有的时候优美的ui中可能需要包含较多的小模块或者是小功能点,倘若都放在一个activity中来处理可能会显得十分的杂乱无章;这时候我们就可以在activity中把这些小的模块拆分出来,进行碎片化管理——Fragment;
例如:新闻类型的app中可能含有多个浏览的模块,我们可以将这些模块拆分出来;
或者如下图所示:
【商城兑】中包括:商圈的选择、并且获取不同商圈的数据、分享、导航、浏览商品等操作;
【门店兑】中包括:商品浏览、附近商铺,导航及相关数据以及操作。
并且两个模块是在同一个页面中进行处理,即使能够实现,但这个activity中的逻辑会显得十分紊乱,所以尽可能的将它拆分,进行碎片化管理。
Activity生命周期:onCreate()、onStart()、onRestart()、onResume()、onPause()、onStop()、onDestroy();
同样的Fragment也具有自己的生命周期:onAttach() 、onCreate()、onCreateView()、onActivityCreated()、onStart()、onResume()、onPause()、onStop()、onDestroyView()、onDestroy()、onDetach();
Fragment与FramLayout的相关用法:
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.add(R.id.layout_frame, merchantFragment);
ft.add(R.id.layout_frame2, comFragment);
ft.commit();
getFragmentManager().executePendingTransactions();
FragmentTransaction ft = getFragmentManager().beginTransaction();
Fragment fragment = getFragmentManager().findFragmentById(R.id.layout_frame2);
if(fragment != null){
comFragment = (ExchangeComFragment)fragment;
}else{
ft.add(R.id.layout_frame2,comFragment);
}
ft.hide(merchantFragment).show(comFragment);
ft.commit();
getFragmentManager().executePendingTransactions();