记录一个问题:Fragment的切换bug1
展开全部
记录一个在项目中遇到的问题,电影详情部分的预告片,在切换Fragment之后预告片依然在继续播放,目前已经解决,记录一下问题。
这种问题发生的原因有两种:
1.Fragment的预加载机制,我项目采用的是ViewPager+Fragment组合进行展示,Fragment默认加载机制是预加载机制即加载前一个Fragment、当前Fragment以及后一个Fragment。假设现在又1、2、3、4总计4个Fragmnet,我的预告片在Fragment2,打开详情以后因为预加载机制Fragment2也开始进行加载,预告片开始播放,同理切换到Fragment3时预告片依然会接着播放。解决这个问题有两个方法。
一:通过ViewPager的setOffscreenPageLimit(int limit)可以设置预加载页面数量。
二:通过Fragmnet的setUserVisibleHint(boolean isVisibleToUser)方法,把Fragment设置为懒加载即可解决。
2.如果项目是通过add hide show进行fragment切换的时候,使用add hide() show()方法切换fragment 不会走任何的生命周期,无法通过生命周期进行刷新这个时候另一个方法就派上用处了,onHiddenChanged(),在方法中进行暂停即可。
这种问题发生的原因有两种:
1.Fragment的预加载机制,我项目采用的是ViewPager+Fragment组合进行展示,Fragment默认加载机制是预加载机制即加载前一个Fragment、当前Fragment以及后一个Fragment。假设现在又1、2、3、4总计4个Fragmnet,我的预告片在Fragment2,打开详情以后因为预加载机制Fragment2也开始进行加载,预告片开始播放,同理切换到Fragment3时预告片依然会接着播放。解决这个问题有两个方法。
一:通过ViewPager的setOffscreenPageLimit(int limit)可以设置预加载页面数量。
二:通过Fragmnet的setUserVisibleHint(boolean isVisibleToUser)方法,把Fragment设置为懒加载即可解决。
2.如果项目是通过add hide show进行fragment切换的时候,使用add hide() show()方法切换fragment 不会走任何的生命周期,无法通过生命周期进行刷新这个时候另一个方法就派上用处了,onHiddenChanged(),在方法中进行暂停即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
万山数据
2024-11-14 广告
2024-11-14 广告
实时数仓处理是我们北京万山数据科技有限公司数据处理能力的核心之一。它基于先进的流处理技术,能够实时捕获、处理和分析海量数据,确保数据的时效性和准确性。通过构建高效的实时数据管道,我们能够实现数据的即时入库与查询,为业务决策提供强有力的支持。...
点击进入详情页
本回答由万山数据提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询