我是靠谱客的博主 失眠板凳,最近开发中收集的这篇文章主要介绍Android Activity切换多个Fragment,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

背景

展示一个注销流程,就一个Activity + 多个fragment实现,同一个viewModel 数据也可同步,但是希望回退再次进入要重新初始化页面不要保留之前的。

实现说明

Activity 采取 下面方式添加Fragment:
if (frag== null) {
frag = MyFragment()
}
}
replace(R.id.logout_content, frag) // 每次都会销毁进入的时候再重建,生命周期会重新走
addToBackStack(null) // 需要有,方便返回需要

fragment 有多个,需有个BaseFragment .在里面获取viewModel 记得传Activity,别传this 因为fragment 要和activity的viewModel同一个

问题

1、每个fragment 的本地变量值修改了,再次进入的时候还是修改后的值,但是证明被销毁了,生命周期都会重新执行。原因是在Activity:

if (frag== null) {
            frag = MyFragment()
     }
   }
 这个类不会空的,还是之前的实例, 所以初始化的变量值,修改了就一直是修改的

2、监听了LiveData 每次进来会走一次监听会得到销毁前数据,所以需要在ondeStroy()把 liveData.value = null 并且在监听 - ->判空处理。

最后

以上就是失眠板凳为你收集整理的Android Activity切换多个Fragment的全部内容,希望文章能够帮你解决Android Activity切换多个Fragment所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(74)

评论列表共有 0 条评论

立即
投稿
返回
顶部