Fragment是一个使界面充分利用的控件,它和Activity关联,减少了Activity的使用。
目前有两种版本的Fragment:
1:android.app.Fragment 兼容的最低版本是android:minSdkVersion=”11” 即3.0版
2:android.support.v4.app.Fragment 兼容的最低版本是android:minSdkVersion=”4” 即1.6版
在这里我们建议使用第二个版本,因为它的兼容性更强。这里要特别注意,两种版本的Fragment不能混合使用,不然会报错,也就是说在同一个项目只能存一种。
今天就来个大家介绍一下Fragment的切换。
Fragment切换分为动态和静态。
那么怎么区分两者呢?动态切换就是每次Fragment切换的时候都会重新加载Fragment,也就是说Activity初始化的时候没有加载所有Fragment;二静态切换就是Activity初始化的时候会加载所有的Fragment,用户可以随意切换,只需设置Fragment的显示和隐藏就可以了,不需要再重新加载。
动态切换:(适合地方:用户点击频率低)
fragmentManager = getSupportFragmentManager();
transaction = fragmentManager.beginTransaction();
findFragment = new FindFragment();
//messageFragment = new MessageFragment();//用的时候再初始化
//myInfoFragment = new MyInfoFragment(); //用的时候再初始化
transaction.replace(R.id.id_content, findFragment);
transaction.commit();
静态切换(适合地方:用户点击频率高)
fragmentManager = getSupportFragmentManager();
transaction = fragmentManager.beginTransaction();
findFragment = new FindFragment();
transaction.add(R.id.id_content, findFragment);
messageFragment = new MessageFragment();
transaction.add(R.id.id_content, messageFragment);
myInfoFragment = new MyInfoFragment();
transaction.add(R.id.id_content, myInfoFragment); transaction.show(findFragment).hide(messageFragment).hide(myInfoFragment);
transaction.commitAllowingStateLoss();