getSupportFragmentManager().findFragmentById()返回为null

本文探讨了在Android布局文件中直接使用Fragment的方法,并解决了通过getChildFragmentManager()获取Fragment实例的问题。作者分享了一种稳定获取Fragment实例的方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前开发过程中,从来没有在布局中直接使用过fragment,一般都是在布局中使用FrameLayout,然后在activity中给这个布局设置fragment,在新项目中遇到了这样的使用:


<fragment
            android:id="@+id/map"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            class="com.google.android.gms.maps.SupportMapFragment" />

原来使用的是,要得到这个fragment,使用的是

getSupportFragmentManager().findFragmentById()

但这个方法,有时候是正常的,有时候,返回为null,要是一直不正确,也可以,但关键是有时候可以,有时候不可以,我现在还没有搞明白这个问题,最后,百度了好久,才在stackoverflow上找到答案,如果你的fragment是这样使用的,想在代码中获取它的实例,应该这样写:


GoogleMap mGoogleMap = ((SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map)).getMap();


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值