Android 向Activity 中添加一个 隐藏的Fragment,并在Fragment完成一些任务
时间: 2023-12-14 07:40:05 浏览: 78
在activity中添加Fragment
要向Activity中添加一个隐藏的Fragment,可以使用FragmentManager和FragmentTransaction来完成。代码如下:
```java
// 获取FragmentManager
FragmentManager fragmentManager = getSupportFragmentManager();
// 开启一个事务
FragmentTransaction transaction = fragmentManager.beginTransaction();
// 创建要添加的Fragment实例
MyFragment fragment = new MyFragment();
// 将Fragment添加到Activity中,并隐藏
transaction.add(R.id.container, fragment);
transaction.hide(fragment);
// 提交事务
transaction.commit();
```
在Fragment中完成一些任务可以在Fragment的生命周期方法中完成,例如在onCreateView()方法中添加:
```java
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_my, container, false);
// 在这里完成一些任务
// ...
return view;
}
```
需要注意的是,如果Fragment被隐藏了,那么它的生命周期方法也不会被调用,所以如果需要在Fragment隐藏后进行一些操作,可以在Activity中进行操作。例如:
```java
// 获取FragmentManager
FragmentManager fragmentManager = getSupportFragmentManager();
// 获取隐藏的Fragment
MyFragment fragment = (MyFragment) fragmentManager.findFragmentByTag("my_fragment");
// 如果Fragment不为空并且已经隐藏了
if (fragment != null && fragment.isHidden()) {
// 显示Fragment
fragmentManager.beginTransaction().show(fragment).commit();
// 在Fragment完成一些任务
fragment.doSomething();
}
```
阅读全文