探讨一下:单Activity+多Fragment模式

自从知道这一招之后我基本不太愿意使用activity了,fragment可以快速创建和管理,可以合理设计页面跳转,设计炫酷的跳转动画,一些操作可以统一进行管理。

  1. 用Fragment替代Activity

以前大部分时候都是将Activity作为页面,Fragment作为页面中的子页面(当时称之为碎片),基本上大部分功能由activity实现,比如老版本的淘宝app就是有上百个activity,当时卡顿的不要不要的。随着技术迭代,我们发现activtiy创建、切换、销毁所消耗的性能远比fragment要大,fragment如今也能替代activity实现大部分功能。

  1. 将Activity作为容器

我理解的单Activity+多Fragment模式并不是指一个App一定只有一个activity,对于一些业务相关的场景,可以整合成一个单Activity+多Fragment模块,将activity作为fragment的容器,让fragment去做UI绘制工作。

  1. 管理Fragment栈

我们可以使用navigation管理fragment,fragment之间的跳转、栈管理都轻而易举,navigation还可以设置切换动画、页面间的数据传递。

Navigation组件

Navigation是Jetpack组件之一,很早之前iOS就是采用的这种跳转方式,当时就在想Android为啥没有,没多久Navigation就面世了。

Navigation可以理解为以一个管理fragment的容器,在容器中各个fragment可以实现任意跳转,

基础使用:

  1. 我们需要在布局中创建Fragment容器:
    <androidx.fragment.app.FragmentContainerView
        android:id="@+id/main_fragment_container"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:name="androidx.navigation.fragment.NavHostFragment"
        app:defaultNavHost="true"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:navG
  • 9
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值