DrM*_*rsi 12 java documentation android android-fragments android-studio
在 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" />
Run Code Online (Sandbox Code Playgroud)
我想从视图中获取片段。文档建议使用
FragmentContainerView fcv = findViewById(R.id.identifications_map_view);
SupportMapFragment smf = fcv.getFragment()
Run Code Online (Sandbox Code Playgroud)
但是 Android Studio 无法解析符号,并且如果我 CTRL+单击“FragmentContainerView”,当我使用 CTRL+F 搜索时,它不会显示 getFragment()。
我知道还有另一种方法来获取片段,但我想知道为什么我不能这样做。我猜版本有问题,因为我的类版本似乎比文档的版本旧,例如还有一个使用 FragmentManager 的额外构造函数,在文档中找不到。甚至可能是最小 API 问题吗?我有24个。
谢谢。
小智 6
它是从 1.4.0-alpha01 添加的(https://developer.android.com/jetpack/androidx/releases/fragment#1.4.0-alpha01)
如果您使用的是较低版本,则不会出现。
当你使用时androidx.fragment.app.Fragment试试这个:
<androidx.fragment.app.FragmentContainerView
android:id="@+id/fragment_container"
android:name="com.example.YourFragment"
android:tag="custom_tag"
tools:layout="@layout/your_fragment_layout" />
Run Code Online (Sandbox Code Playgroud)
并通过以下方式获取此片段实例:
childFragmentManager.findFragmentByTag("custom_tag")
Run Code Online (Sandbox Code Playgroud)
UPD:在某些情况下它不起作用。我不知道为什么。尝试这个:
binding.fragmentContainer.getFragment<YourFragment>()
Run Code Online (Sandbox Code Playgroud)
小智 -2
我认为你对最小 api 的看法可能是正确的。根据文档,要使用 androidx 包,您需要 api 28 或更高版本
https://developer.android.com/jetpack/androidx
| 归档时间: |
|
| 查看次数: |
6026 次 |
| 最近记录: |