android Fragment学习笔记

  1. fragment主要有两种添加方法(最新官方文档统一推荐使用FragmentContainerView)。第一种在xml文件中通过name:指定创建的fragment实例;第二种则是代码动态添加,如下
if (savedInstanceState == null) {
   getSupportFragmentManager().beginTransaction()
        .setReorderingAllowed(true)
        .add(R.id.fragment_container_view, ExampleFragment.class, null)
        .commit();
}

其中,setReorderingAllowed(true)官方推荐使用,其使用场景(未验证):
(1)自定义布局:你可能希望在容器中按照特定的顺序排列组件,而不是依赖于它们的添加顺序。通过启用重新排序,你可以手动控制组件的排列方式,以实现自定义布局效果。

(2)图层管理:在某些情况下,你可能需要在容器中创建多个重叠的组件,并控制它们的显示顺序。通过启用重新排序并使用setComponentZOrder方法,你可以调整组件的堆叠顺序,从而控制它们的显示优先级。

其中,上面代码示例只有savedInstanceState为null才会创建fragment,确保fragment只会在activity第一次创建时才会被创建,当configuration发生变化activity再次创建,savedInstanceState不为null时不会重建。

当你想使用saveBackStack()/restoreBackStack() 方法支持多个返回堆栈,那么setReorderingAllowed(true)和addToBackStack()是必须的

使用FragmentTransaction的add()+hide(){性能好,不能hide太多fragment,不然会oom}之前的fragment效果等同replace(),但是replace会执行fragment生命周期方法。

fragment过渡和动画不能同一时间执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值