场景描述
在一个activity活动中(暂且叫A界面),布局文件中有一个android.support.design.widget.TabLayout和android.support.v4.view.ViewPager,viewPager填充使用的是FragmentPagerAdapter,总共有四个界面
每个fragment里面,只放了一个RecyclerView,获取焦点请求数据,填充RecyclerView。在点击条目之后,跳转到新的一个activity(暂且叫B界面)展示对应的数据,当返回到A界面时,问题出现了,填充给viewpager的数据适配器里的fragment的控件丢失了。
问题已解决:
经过排查,发现是设置tableyout的TabLayout.OnTabSelectedListener接口之后,出现了这个问题。
界面切换的两种方式:
1.设置tableyout的TabLayout.OnTabSelectedListener
2.设置viewpager的addOnPageChangeListener
经过测试:
第一种方式会出现内容实体fragment控件丢失的问题
第二种不会出现
结果
第一种方式的解决方式,就是在初始化数据的时候,把TabLayout.OnTabSelectedListener接口对象实例化为成员变量,不能用匿名方式直接去传递
存疑:
在此记录,至于原因,没有找到
网友评论