android中的Fragment
依赖于activity
生命周期类似,多了onAttach,onDetach,onCreateView,onDestroyView,onActivityCreated
示例:
Fragment newFragment = CountingFragment.newInstance(mStackLevel);
// Add the fragment to the activity, pushing this transaction
// on to the back stack.
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.setCustomAnimations(R.animator.fragment_slide_left_enter,
R.animator.fragment_slide_left_exit,
R.animator.fragment_slide_right_enter,
R.animator.fragment_slide_right_exit);
ft.replace(R.id.simple_fragment, newFragment);
ft.addToBackStack(null);
ft.commit();
add,replace第一个参数是android.R.id.content或自定义的容器例如FrameLayout
add,replace,remove后要使用事务提交
show与hide不涉及生命周期
手动addToBackStack到回退栈中(默认remove会销毁,除非手动add了),回退调用 getFragmentManager().popBackStack();或onBackPressed();
切换可以setCustomAnimations动画
或 ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);// 使用预置的某些动画
交互:
设置回调
activity可以setAugment添加类似extras的交互数据
getActivity()得到宿主activity,再根据id或tag得到其他Fragment
onCreate时设置setHasOptionsMenu才能在actionBar中的onCreateOptionMenu得到响应,供activity交互
相关:
FragmentPagerAdapter
FragmentStatePagerAdapter
ViewPager
Activity