android FragmentManager 删除所有Fragment 重建的示例代码

 更新时间:2025年08月28日 10:59:43   作者:chao189844  
本文详解Android中通过FragmentManager删除所有Fragment并重建的方法,包括获取实例、事务操作、移除与添加步骤,以及完整代码示例,适用于应用状态重置或内容切换场景,感兴趣的朋友跟随小编一起看看吧

在Android开发中,管理Fragment是一项常见任务,有时需要删除所有Fragment并重新创建。这在某些场景下,例如用户需要重置应用状态或切换内容时,显得尤为重要。本文将详细介绍如何通过 FragmentManager删除所有Fragment并重建。

一、删除所有Fragment

首先,了解如何删除所有Fragment。使用 FragmentManager可以方便地管理Fragment的添加、删除、替换等操作。

步骤1:获取FragmentManager

在Activity中,可以通过 getSupportFragmentManager()获取 FragmentManager实例:

FragmentManager fragmentManager = getSupportFragmentManager();

步骤2:开始事务

使用 beginTransaction()方法开始一个事务:

FragmentTransaction transaction = fragmentManager.beginTransaction();

步骤3:获取当前添加的所有Fragment

使用 getFragments()方法获取当前添加到 FragmentManager中的所有Fragment:

List<Fragment> fragments = fragmentManager.getFragments();

步骤4:遍历并移除所有Fragment

遍历获取到的Fragment列表,并使用 remove()方法移除每个Fragment:

for (Fragment fragment : fragments) {
    if (fragment != null) {
        transaction.remove(fragment);
    }
}

步骤5:提交事务

使用 commit()方法提交事务:

transaction.commit();

二、重建Fragment

在删除所有Fragment后,可以根据需要重建新的Fragment。

步骤1:创建新的Fragment实例

创建新的Fragment实例,例如:

Fragment newFragment = new ExampleFragment();

步骤2:添加新的Fragment

使用 add()方法将新的Fragment添加到指定的容器视图中:

transaction.add(R.id.fragment_container, newFragment);

步骤3:再次提交事务

提交包含添加新Fragment操作的事务:

transaction.commit();

三、完整代码示例

以下是一个完整的示例代码,展示如何删除所有Fragment并重新创建一个新的Fragment:

import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import java.util.List;
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 删除所有Fragment
        removeAllFragments();
        // 重建新的Fragment
        rebuildFragment();
    }
    private void removeAllFragments() {
        FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction transaction = fragmentManager.beginTransaction();
        List<Fragment> fragments = fragmentManager.getFragments();
        for (Fragment fragment : fragments) {
            if (fragment != null) {
                transaction.remove(fragment);
            }
        }
        transaction.commit();
    }
    private void rebuildFragment() {
        FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction transaction = fragmentManager.beginTransaction();
        Fragment newFragment = new ExampleFragment();
        transaction.add(R.id.fragment_container, newFragment);
        transaction.commit();
    }
}

到此这篇关于android FragmentManager 删除所有Fragment 重建的文章就介绍到这了,更多相关android FragmentManager删除Fragment 重建内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Android实现EditText控件禁止输入内容的方法(附测试demo)

    Android实现EditText控件禁止输入内容的方法(附测试demo)

    这篇文章主要介绍了Android实现EditText控件禁止输入内容的方法,涉及Android针对EditText控件属性设置的相关技巧,需要的朋友可以参考下
    2015-12-12
  • Kotlin List与Set和Map实例讲解

    Kotlin List与Set和Map实例讲解

    集合是可变数量(可能为0)的一组条目,kotlin标准库提供一个整套用于集合管理的工具,各种集合对于解决问题都具有重要意义,并且经常用到。kotlin中的集合与Java基本类似
    2022-10-10
  • 使用PackageManager获得应用信息实例方法

    使用PackageManager获得应用信息实例方法

    PackageManager是Android中一个很有用的类,能够获取已安装的应用(包)的信息,如应用名称、图标、权限,安装、删除应用(包)等
    2013-11-11
  • 基于fluttertoast实现封装弹框提示工具类

    基于fluttertoast实现封装弹框提示工具类

    这篇文章主要为大家介绍了基于fluttertoast实现封装弹框提示工具类的实现代码,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Android弹出窗口实现方法

    Android弹出窗口实现方法

    这篇文章主要介绍了Android弹出窗口实现方法,涉及Android TextView及鼠标事件的响应相关技巧,需要的朋友可以参考下
    2016-01-01
  • Android之日期及时间选择对话框用法实例分析

    Android之日期及时间选择对话框用法实例分析

    这篇文章主要介绍了Android之日期及时间选择对话框用法,以实例形式较为详细的分析了Android创建日期及时间选择对话框的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • Kotlin的datetime库如何在项目中使用

    Kotlin的datetime库如何在项目中使用

    本文介绍了kotlinx-datetime 库中的Instant、TimeZone、DateTimePeriod 等核心类的使用方法,帮助你正确创建、转换和操作时间点及时间段,这个库还支持更多功能,比如日期和时间的本地化,方便跨平台日期时间处理,感兴趣的朋友一起跟随小编学习吧
    2025-07-07
  • 浅谈Android Studio3.6 更新功能

    浅谈Android Studio3.6 更新功能

    这篇文章主要介绍了Android Studio3.6 更新功能的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • Android广播事件流程与广播ANR原理深入刨析

    Android广播事件流程与广播ANR原理深入刨析

    这篇文章主要介绍了Android广播事件流程与广播ANR原理,ANR应用程序未响应,当主线程被阻塞时,就会弹出如下弹窗,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可任意参考一下
    2022-10-10
  • Android使用WebView实现离线阅读功能

    Android使用WebView实现离线阅读功能

    这篇文章主要介绍了Android使用WebView实现离线阅读功能,帮助大家更好的理解和学习使用Android,感兴趣的朋友可以了解下
    2021-04-04

最新评论