彩神排列三_神彩排列三官方

Android实践(一)| Fragment实现底部导航栏(解决重叠问题)

时间:2019-12-26 06:16:23 出处:彩神排列三_神彩排列三官方

最初学习Android的随后,是边学习边做着俩个 小项目的,随后项目需求,前要实现俩个 底部导航栏的功能,随后基础知识受限,百度了统统博客,大致就找到这人实现方案:第这人统统我直接用Fragment实现(点击切换),第二种是ViewPager+Fragment实现(除了点击切换,还支持左右滑动切换)。根据需求使用了第这人方式,后期产生了Fragment重叠的大什么的问题,随后这人 bug时而出先,统统我知道要怎样定位(学生时期),就不必说放下了。现在随后学习进度(系统学习Fragment),重新捡起这人 大什么的问题,就想写一篇实现功能+处里bug的博客,如有不够之处,请留言指教。

上面代码中逻辑很清晰,根据注释基本还前要看明白,具体或多或少控件的用法自行百度。到这里功能就随后实现了,因此会出先Fragment重叠的bug。情况报告报告如下图:

这里补充或多或少:切换页面也还前要用replace方式,它和hide+show方式的直观区别统统我:使用replace方式会先将fragment实例remove掉,因此重新add,这就导致 Fragment每次切换时会重新走一遍生命周期,创建俩个 新的实例,不必保存每个Fragment的情况报告;而使用hide+show方式则仅仅是将不显示的Fragment设置为不可见,再次显示出来时会保存情况报告。

显然,销毁重建后Fragment对象所指向的实例与重建前相同。随后愿意们愿意们的BottomBar就完成了!

随后对Activity生命周期不太了解,还前要看一看我的另一篇博客:

Android笔记(一) | Activity的生命周期

愿意们愿意们愿意们进入Activity时,首先展示第俩个 页面,即创建对应Fragment实例,使用add+show方式显示出来,愿意们愿意们愿意们点击进入别的页面时,调用hide方式将已展示的Fragment页面隐藏(实际是设置Visiable属性为不可见),因此显示对应Fragment页面(已创建则直接调用show方式,未创建则创建,因此调用add+show方式显示)。

统统,在重建后的的Activity中,又会重新创建Fragment的实例,因此显示出来,而随后被系统恢复的Fragment也会恢复随后的显示情况报告,这就导致 了多个Fragment重叠。当然,任何能导致 Activity销毁重建的情况报告时会产生这人 bug,比如说应用在后台时,随后内存资源不够导致 Activity被kill。既然知道导致 了,那末 处里起来就那末了。

这里我愿意到的处里方式是从重新创建Fragment这里着手,既然保存的情况报告会恢复,那末 Activity重建的随后愿意们愿意们不必Fragment重新创建不就行了。具体要怎样做呢?这里还是前要熟悉Activity的生命周期。

我这里为了区分Fragment页面给每个页面换成了俩个 TextView,具体就根据另一方的需求在Fragment中写代码就行了。

Fragment重叠异常

热门

热门标签