在Android中单击此按钮时,如何在片段中运行代码

时间:2017-10-08 06:16:24

标签: android android-fragments

在我的应用程序中,我有4 fragment进入 MainActivity ,我使用ViewPager来展示此fragments

在每个fragments中,我都有API调用。

但是当运行应用程序时,运行此4 fragments中的所有API调用!

我想在每个fragments点击,然后运行此API调用。

我在fragment

中将API调用代码和其他代码写入此方法
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

我该怎么办?请帮帮我

1 个答案:

答案 0 :(得分:2)

这是因为由于屏幕页面限制默认值而在启动活动时已经加载了片段,因此代码运行所有片段,您必须将屏幕页面限制设置为零,这样只有一个片段将一次加载:

yourViewPager.setOffscreenPageLimit(0);

根据documentation

  

public void setOffscreenPageLimit(int limit)设置页数   应保留在视图中当前页面的任一侧   处于空闲状态的层次结构。超出此限制的页面将被重新创建   需要时从适配器。这是作为优化提供的。如果   您事先知道需要支持的页数或   在你的页面上有适当的延迟加载机制,调整它   设置可以在感知到的寻呼动画的平滑性方面具有益处   和互动。如果您有少量页面(3-4)   可以一次保持活动状态,在布局上花费的时间更少   新创建的视图子树作为用户来回页面。您   应该保持这个限制,特别是如果您的页面很复杂   布局。此设置默认为1.参数:limit - 多少   页面将在空闲状态下保持在屏幕外。

<强>更新

正如我从this question所知,最小页面限制 1 且不能小于此值,因此最佳解决方案是this answer async doc 1}}要在每个片段中检查的函数:

setUserVisibleHint