用Fragmentcontainerview ,但不用NavHostFragment,添加多个Fragment的完整例子
时间: 2024-01-07 19:04:19 浏览: 141
安卓的Fragment的小例子
可以使用以下步骤添加多个Fragment,但不使用NavHostFragment:
1. 在布局文件中添加 FragmentContainerView:
```xml
<androidx.fragment.app.FragmentContainerView
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
```
2. 创建多个 Fragment 类,并在 onCreate() 方法中设置布局文件:
```java
public class FirstFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_first, container, false);
}
}
public class SecondFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_second, container, false);
}
}
```
3. 在 Activity 中使用 FragmentTransaction 添加 Fragment:
```java
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
// 添加第一个 Fragment
FirstFragment firstFragment = new FirstFragment();
fragmentTransaction.add(R.id.fragment_container, firstFragment);
// 添加第二个 Fragment
SecondFragment secondFragment = new SecondFragment();
fragmentTransaction.add(R.id.fragment_container, secondFragment);
// 提交事务
fragmentTransaction.commit();
```
这样就可以添加多个 Fragment 到同一个 FragmentContainerView 中了。注意,需要使用不同的 id 来区分每个 Fragment。同时,需要在 FragmentTransaction 中使用 add() 方法来添加 Fragment,而不是使用 replace() 方法。因为使用 replace() 方法会导致 Fragment 的生命周期发生变化,可能会影响到你的业务逻辑。
阅读全文