首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何限制查看分页程序不执行其他片段中的任何代码

如何限制查看分页程序不执行其他片段中的任何代码
EN

Stack Overflow用户
提问于 2018-09-13 20:15:07
回答 3查看 33关注 0票数 0

我有一个视图分页,其中包含2个片段。

现在,当用户加载活动时,两个视图都被加载,它们都包含分析标记,应用程序从两个片段发送视图标记。

我想限制这一点。我希望它不执行任何代码从fragment2,除非用户点击它从视图页签。

EN

回答 3

Stack Overflow用户

发布于 2018-09-13 20:22:22

ViewPager的情况下,I think...the minimum offScreenPageLimit默认设置为1是不可能的,所以默认情况下它会每一面加载一个页面。因此,最好将其设置为自定义视图,并根据用户点击来加载片段。

或者检查这个变通方法,也许this会对您的情况有所帮助。我从未试过,但你可以试一试。

票数 1
EN

Stack Overflow用户

发布于 2018-09-13 20:40:46

您可以在fragment变得可见之后再做这些事情

代码语言:javascript
复制
 @Override
 public void setUserVisibleHint(boolean isVisibleToUser) {
    super.setUserVisibleHint(isVisibleToUser);
    if (isVisibleToUser) {
    }
    else {
    }
  }
票数 1
EN

Stack Overflow用户

发布于 2018-09-13 21:06:22

viewpager的最佳实现是回收viewpager项。你可以通过使用offScreenPageLimit来实现它。然而,在回答你的问题时,我自己也遇到过类似的情况,目前还没有完美的解决方案来实现这种情况。但是有一些你可以做的黑客行为。

一种解决方案是使用

代码语言:javascript
复制
@Override
 public void setUserVisibleHint(boolean isVisibleToUser) {
    super.setUserVisibleHint(isVisibleToUser);
    if (isVisibleToUser) {
    }
    else {
    }
  }

只有当片段对用户可见时,才会执行此操作。但是这个函数也有一些缺陷。在某些边缘情况下,这不能很好地执行,这将导致一个空的片段。

如果我正在集成viewpager和tablayout,并且如果只有Viewpager,你可以覆盖"OnPageSelectedListener“,那么我所做的就是使用"OnTabSelectedListener”。

如果你使用的是OnTabSelectedListener,,当一个标签被选中时,你会在"OnTabSelected()“方法中得到回调。因此,当您获得回调时,请在相应片段中使用公共函数来加载数据(Api调用、设置适配器等)。

希望这能有所帮助

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52313557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档