Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 选项卡切换冻结(设置适配器)_Java_Android_Adapter_Android Tablayout - Fatal编程技术网

Java 选项卡切换冻结(设置适配器)

Java 选项卡切换冻结(设置适配器),java,android,adapter,android-tablayout,Java,Android,Adapter,Android Tablayout,我有个问题:3个标签的表格布局,最后2个有回收视图 当我按下第二个选项卡或第三个选项卡时,会出现一些冻结,因为所有这些选项卡都有recylerview,它们都有适配器 我调试了应用程序,并了解到应用程序冻结在此行:setAdapter(adapter),我如何修复此问题 对于表格布局,我使用FragmentPagerAdapter(预加载下一个选项卡并保存上一个选项卡) 谢谢,对不起我的英语 示例屏幕: 切换选项卡时是否使用幻灯片动画?如果是这样的话,你可能在主线程上同时做了太多的工作。我使用v

我有个问题:3个标签的表格布局,最后2个有回收视图

当我按下第二个选项卡或第三个选项卡时,会出现一些冻结,因为所有这些选项卡都有recylerview,它们都有适配器

我调试了应用程序,并了解到应用程序冻结在此行:
setAdapter(adapter)
,我如何修复此问题

对于表格布局,我使用
FragmentPagerAdapter
(预加载下一个选项卡并保存上一个选项卡)

谢谢,对不起我的英语

示例屏幕:


切换选项卡时是否使用幻灯片动画?如果是这样的话,你可能在主线程上同时做了太多的工作。我使用viewpager,当我使用幻灯片标签时,我没有冻结;只有当我用recyclerview单击选项卡时,所有操作都在rxjava2的后台线程中工作,但是setAdapter没有,这是一个问题。我的意思是,recyclerview呈现和幻灯片效果在UI上很重要。由于您只能在UI线程上执行与UI相关的操作,因此后台线程对您的帮助不会超过它已有的帮助。您可以尝试调用
setAdapter()
方法,稍微延迟一点(500毫秒或1000毫秒),看看它是否改善了行为。另一个选项是不“延迟加载”选项卡片段…您还可以尝试在选择选项卡时禁用幻灯片动画,方法是使用
setCurrentItem
如下-
mViewPager.setCurrentItem(位置,false)您可能正在UI线程上执行某些操作,这些操作应该在后台执行,但如果没有代码,我们可以继续猜测。