1,Fragment之间的相互切换。
2,以下代码是具体操作事件,index传入的是你点击时的第几个fragment,例如:我默认传的是0,代表我让它默认显示为FoucesFragment。
3,在你需要切换fragment的地方调用此方法。
4,导入jar包均为v4.app()。
private void setTabSelection(int index) { // 开启一个Fragment事务 FragmentTransaction transaction = fragmentManager.beginTransaction(); // 先隐藏掉所有的Fragment,以防止有多个Fragment显示在界面上的情况 hideFragments(transaction); switch (index) { case 0: if (foucesfrg == null) { // 如果MessageFragment为空,则创建一个并添加到界面上 foucesfrg = new FoucesFragment(); Bundle args = new Bundle(); String alias = getIntent().getStringExtra("alias"); args.putString("alias", alias); args.putInt("tag", 1); foucesfrg.setArguments(args); transaction.add(R.id.fraglayout, foucesfrg); } else { // 如果MessageFragment不为空,则直接将它显示出来 transaction.show(foucesfrg); } break; case 1: if (fansfrg == null) { // 如果ContactsFragment为空,则创建一个并添加到界面上 fansfrg = new FansFragment(); Bundle args = new Bundle(); String alias = getIntent().getStringExtra("alias"); args.putString("alias", alias); args.putInt("tag", 2); fansfrg.setArguments(args); transaction.add(R.id.fraglayout, fansfrg); } else { // 如果ContactsFragment不为空,则直接将它显示出来 transaction.show(fansfrg); } break; } transaction.commit(); } /** * 将所有的Fragment都置为隐藏状态。 * * @param transaction 用于对Fragment执行操作的事务 */ private void hideFragments(FragmentTransaction transaction) { if (foucesfrg != null) { transaction.hide(foucesfrg); } if (fansfrg != null) { transaction.hide(fansfrg); } }