在XML中,我有
<androidx.fragment.app.FragmentContainerView
android:id="@+id/identifications_map_view"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="match_parent" />
我想从视图中获取片段。文档建议使用
FragmentContainerView fcv = findViewById(R.id.identifications_map_view);
SupportMapFragment smf = fcv.getFragment()
但Android Studio无法解析符号,如果我CTRL+单击“FragmentContainerView”,它不会显示getFragment(),当我用CTRL+F搜索。
我知道有另一种方法可以得到Fragment,但是我想知道为什么我不能这样做。我猜是版本的问题,因为我的类的版本似乎比文档的版本要旧,例如,还有一个额外的使用FragmentManager的构造函数,在文档中找不到。这甚至可能是最小API的问题吗?我有24个。
- 谢谢-谢谢
4条答案
按热度按时间ac1kyiln1#
它已从1.4.0版添加至alpha01版(网址:)
如果你是在一个较低的版本,它不会有。
lrpiutwd2#
正如Sam所说,直到1.4.0 alpha版本,
getFragment()
方法才被添加到FragmentContainerView
中。但是,根据文件:
这个方法抓取
Fragment
,它的视图是最近添加到容器中的。这可以作为调用FragmentManager.findFragmentById
和传入FragmentContainerView
的id的替代方法。因此,这里的另一种方法是简单地按照使用
<fragment />
标记的方式进行操作:一切都会顺利的。
pgpifvop3#
当您使用
androidx.fragment.app.Fragment
时,请尝试以下操作:并通过以下方式获取此片段示例:
UPD:在某些情况下,它不起作用。我不知道为什么。试试这个:
57hvy0tb4#
我想你可能是对的关于最低api。根据文档使用androidx包你需要api 28或更高
https://developer.android.com/jetpack/androidx