Activity得到当前fragment实例
许多童鞋会用到fragment,利用activity去管理,而由于可能涉及到动态加载fragment或者利用java反射机制得到新的fragment去填充布局,导致很多时候我们需要去获取得到当前fragment实例。
例如下例:调用switchContent方法需要传入当前fragment和切换的fragment来保证fragment不被多次创建。利用show和hide方法,将fragment保存在内存中,这样view pager的切换,fragment将会调用on resume方法。
public void switchContent(Fragment from, Fragment to) { if (mContent != to) { mContent = to; FragmentTransaction transaction = mFragmentMan.beginTransaction().setCustomAnimations( android.R.anim.fade_in, R.anim.slide_out); if (!to.isAdded()) { // 先判断是否被add过 transaction.hide(from).add(R.id.content_frame, to).commit(); // 隐藏当前的fragment,add下一个到Activity中 } else { transaction.hide(from).show(to).commit(); // 隐藏当前的fragment,显示下一个 } } }
获取当前activity的当前fragment
Fragment from=manager.findFragmentById(R.id.content_frame);
其中findFragmentById是FragmentManager中得方法,传入的int 是fragment对应的activity容器。