首页 > 其他分享 >activity嵌套fragment 并 启动activity

activity嵌套fragment 并 启动activity

时间:2023-04-26 18:01:39浏览次数:39  
标签:transaction 启动 fragment Fragment01 嵌套 Fragment Activity activity

1.MainActivity

FragmentManager fragmentManager;
FragmentTransaction transaction;

private void replaceFragment(Fragment fragment) {
        // 1.获取FragmentManager,在活动中可以直接通过调用getFragmentManager()方法得到
        fragmentManager =getSupportFragmentManager();
        // 2.开启一个事务,通过调用beginTransaction()方法开启
        transaction = fragmentManager.beginTransaction();
        // 3.向容器内添加或替换碎片,一般使用replace()方法实现,需要传入容器的id和待添加的碎片实例
        transaction.replace(R.id.fr_container, fragment);  //fr_container不能为fragment布局,可使用线性布局相对布局等。
        // 4.使用addToBackStack()方法,将事务添加到返回栈中,填入的是用于描述返回栈的一个名字
        transaction.addToBackStack(null);
        // 5.提交事物,调用commit()方法来完成
        transaction.commit();
    }

2.fragment 启动Activity

@Override
    public void onResume() {
        super.onResume();
        Intent intent = new Intent();
        intent.setClass(getActivity(),
                AdjustResolutionDialogActivity.class);
        //intent.putExtra(EXTRA_PREFERENCE_KEY, curMode);
        getActivity().startActivity(intent);
    }

那我们就通过上节的代码在Activity中和Fragment01和Fragment02中加入log, 关于代码我就不需要贴出了,我们用Log分析。

a:在Activity中启动Fragment01

可以看到这个和上图的流程是一样的。

b:然后按back键返回

可以看到显示Fragment先暂停,Activity再暂停,接着是Fragment停止,Activity停止,接着是Fragment销毁,Activity销毁

c:当启动Fragment01后,按Home按键

可以看到显示Fragment先暂停,Activity再暂停,接着是Fragment停止,Activity停止

d:在c种情况下后,然后再次启动该应用

可以看到先是Activity先重新启动,然后是Fragment再次启动,接着是Activity运行,然后是Fragment运行

e:启动Fragment01后,再次启动Fragment02

可以看到先是Fragment01先彻底销毁,再次加载Fragment02的

总结:

1:可以看到Fragment是Activity的界面的一部分,当Activity创建后才会有Fragment

2:Fragment的生命周期是受Activity影响的,当Activity停止后,Fragment也会跟着停止

3:当Activity运行之后(OnResume方法调用之后,OnPause方法调用之前),可以单独的操作每个Fragment,比如增加,删除

Android 学习之Fragment生命周期 - 腾讯云开发者社区-腾讯云 (tencent.com)

标签:transaction,启动,fragment,Fragment01,嵌套,Fragment,Activity,activity
From: https://www.cnblogs.com/wanglongjiang/p/17356872.html

相关文章

  • Kotlin实战基础 - 设置点击事件、Activity跳转、传值
    基础过度Kotlin基础入门-变量、方法、对象、继承、接口Kotlin实战基础-设置点击事件、Activity跳转、传值Kotlin实战基础-Activity、Fragment传递参数尚未完整,遇缺再补-点击事件Activity跳转Activity跳转+Intent传值点击事件点击事件是基础功......
  • [转]前端传嵌套对象参数给spring mvc
    在使用springmvc开发web应用时,感觉springmvc的controller方法能自动将参数注入到方法的参数对象中,极大的方便了开发。但是,在遇到有嵌套对象的时候,比如订单对象有个属性是用户对象,就不好处理了。一种情况是,传递的参数都是作为post方法的请求体,我们可以用RequestBody注解。但是当条......
  • in(子查询/嵌套查询)
    in的基础用法:in一般用在where的后面,查询一个范围内的数据,如果是notin则查询不在这个范围内的数据select*from(表)where(表达式)in(字段1,字段2。。。)grade表student表   查询grade表中的语文和数学成绩......
  • 【Python】操作复杂嵌套的json数据
    1、相关文章递归获取所有key-value值:https://www.cnblogs.com/phoenixy/p/17126455.html 2、对复杂的json进行增删改查①获取数据#-*-coding:UTF-8-*-importjsonfromjsonpath_ngimportparsefromaa_demo.base.loggerimport*classjson_labor_tools:......
  • createDocumentFragment
    主要区别createElement创建的是元素节点,节点类型为1,createDocumentFragment创建的是文档碎片,节点类型是11性能优势程序员可以使用DocumentFragment将一批子元素添加到任何类似node的父节点上,对这批子元素的操作不需要一个真正的根节点。程序员可以不依赖可见的DOM来构造一个DOM结构......
  • Activity生命周期
    正如您将要在以下课程中要学习的,有Activity会在图1所示不同状态之间过渡的几种情况。但是,这些状态中只有三种可以是静态。也就是说,Activity只能在三种状态之一下存在很长时间。Resumed:在这种状态下,Activity处于前台,且用户可以与其交互。(有时也称为“运行”状态。)Paused:在这种......
  • 0002_内部类、静态嵌套类
    内部类、静态嵌套类内部类的一个简单例子如下所示:在外部类中定义了一个非静态内部类"InnerClass",并在该类的方法中实例化并调用了该内部类。publicclassOuterClass{privateintouterVar;publicOuterClass(intvar){outerVar=var;}publi......
  • Livedata+viewmodel+Fragment
    title:LiveDataviewmodel实现Fragment间的通信使用ViewModel+LiveData实现同一个Activity不同Fragment间的通信。1.将两个Fragment等比例放置在Activity的布局文件中。<?xmlversion="1.0"encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayoutxmlns:an......
  • Vue3 Fragment
    视频五、新的组件1.Fragment在Vue2中:组件必须有一个根标签在Vue3中:组件可以没有根标签,内部会将多个标签包含在一个Fragment虚拟元素中好处:减少标签层级,减小内存占用......
  • List嵌套排序并取第一个对象
    usingNewtonsoft.Json;using嵌套List排序;//示例listvarexampleString="{\"code\":1,\"msg\":\"[OK]AI诊断成功!\",\"diagnoseJson\":{\"disease\":{\"zhongda\":[[\"胆癌(胆囊癌胆总管癌胆囊肉瘤)\&q......