Activity得到当前fragment实例

来源:互联网 发布:linux socket close 编辑:程序博客网 时间:2024/05/22 08:25

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容器。

0 0
原创粉丝点击