FragmentContainerView,但不用NavHostFragment,详细的规范使用方法
时间: 2024-01-08 22:04:44 浏览: 21
FragmentContainerView 是一个用于承载 Fragment 的布局容器,它可以替代旧版的 FragmentActivity 和 FrameLayout 组合的方式。
不使用 NavHostFragment 的情况下,可以通过以下步骤来使用 FragmentContainerView。
1. 在布局文件中添加 FragmentContainerView,例如:
```
<androidx.fragment.app.FragmentContainerView
android:id="@+id/fragment_container"
android:name="com.example.MyFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
```
其中,android:name 指定了要显示的 Fragment 类名。
2. 在 Activity 或 Fragment 中使用 FragmentManager 加载 Fragment,例如:
```
val fragmentManager = supportFragmentManager
val fragmentTransaction = fragmentManager.beginTransaction()
val myFragment = MyFragment()
fragmentTransaction.replace(R.id.fragment_container, myFragment)
fragmentTransaction.commit()
```
其中,R.id.fragment_container 是 FragmentContainerView 的 ID。
3. 如果需要在 Fragment 中使用 ViewModel,可以使用 ViewModelProvider 来创建和获取 ViewModel,例如:
```
val viewModel = ViewModelProvider(this).get(MyViewModel::class.java)
```
其中,this 是 Fragment,如果是 Activity 则需要传入 this@ActivityName。
4. 如果需要向 Fragment 传递参数,可以使用 Bundle,例如:
```
val args = Bundle()
args.putString("key", "value")
myFragment.arguments = args
```
在 Fragment 中获取参数:
```
val args = arguments
val value = args?.getString("key")
```
以上就是使用 FragmentContainerView 的基本流程,希望对您有所帮助。