Activity得到当前fragment实例

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值