TabLayout+viewpager问题记录

场景描述

在一个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接口对象实例化为成员变量,不能用匿名方式直接去传递

存疑:

在此记录,至于原因,没有找到

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。