我TabActivity
定义了三个选项卡。第一个选项卡是轻量级的,并且可以在可接受的时间内呈现。但是第二个和第三个选项卡在我单击它们后确实需要几秒钟才能在视觉上呈现出来。在加载第一个选项卡后,我想在后台启动它们以进行预缓存。加载后,我可以在它们之间快速切换。
所以我想知道如何启动第二个和第三个选项卡。它们是加载在视图区域中的新活动。
我TabActivity
定义了三个选项卡。第一个选项卡是轻量级的,并且可以在可接受的时间内呈现。但是第二个和第三个选项卡在我单击它们后确实需要几秒钟才能在视觉上呈现出来。在加载第一个选项卡后,我想在后台启动它们以进行预缓存。加载后,我可以在它们之间快速切换。
所以我想知道如何启动第二个和第三个选项卡。它们是加载在视图区域中的新活动。
步骤#1:摆脱所有用作选项卡内容的活动。
步骤#2:将它们重写为(活动的主布局文件中的您的Views
孩子),并使其工作。将活动作为选项卡的内容会增加开销,但没有任何意义。FrameLayout
TabHost
如果这还不足以提高性能,那么...
第 3 步:将第二个和第三个选项卡移动到单独的布局文件中。将它们充气,onCreate()
但只需抓住它们(不要将它们连接到TabHost
)。添加选项卡规格时,使用带有. 的选项TabContentFactory
,并让工厂获取预先构建的Views
.
如果这只是将您的性能问题转变为onCreate()
,那么...
第 4 步:尝试在后台线程中扩展和设置这些视图。这可能会爆炸,因为 Android 不喜欢后台线程上的 UI 操作。即使它确实有效,您也需要聪明地处理用户在完成工作之前单击第二个选项卡的可能性。
或者,您可以加快这些选项卡尝试执行的任何操作,这样它们就不会花费太多时间,至少在开始时是这样。