【问题标题】:Show tooltip when fragment inside viewpager is visible to user当 viewpager 中的片段对用户可见时显示工具提示
【发布时间】:2016-01-29 21:20:47
【问题描述】:

我需要在片段可见时(对用户)执行一个方法。该方法用于在片段内显示工具提示。

我有 1 个活动在布局底部有 viewpager 和菜单栏来导航片段。我还禁用了 viewpager 的滑动。

我需要在片段可见或活动时调用 showTooltip() 。我已经尝试过恢复和 setUserVisibleHint() 但仍然无法正常工作。当 viewpager 移动到可见页面时,工具提示不会出现。

public void showTooltip(){
    Tooltip.make(getActivity(),
    new Tooltip.Builder(101)
    .anchor(gridSearch, Tooltip.Gravity.CENTER)
    .closePolicy(new Tooltip.ClosePolicy()
    .insidePolicy(true, false)
    .outsidePolicy(true, false), 3000)
    .activateDelay(1500)
    .showDelay(300)
    .text("Click to see all videos.")
    .maxWidth(500)
    .withArrow(true)
    .withOverlay(true)
    .floatingAnimation(Tooltip.AnimationBuilder.DEFAULT)
    .build()
     ).show();
}

【问题讨论】:

  • 您找到解决方案了吗?我遇到了同样的问题,我需要显示到第二个标签片段,但是一旦返回到第一个片段,它就会显示给第一个标签片段。

标签: android android-fragments android-viewpager


【解决方案1】:

请注意,片段显示您可以使用具有回调的ViewPager.OnPageChangeListener,当您切换ViewPagers 页面时调用:

 mViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
    @Override
    public void onPageScrolled(int i, float v, int i2) {

    }

    @Override
    public void onPageSelected(int i) {
        //here you can show yours tooltip
    }

    @Override
    public void onPageScrollStateChanged(int i) {

    }
});

【讨论】:

  • 工具提示将锚定到片段中的某个视图。如果我在 pageselected 中调用它,它将返回错误的视图空指针。 @mohax
  • @IbnuHabibie,你可以在onPageSelected中调用一个fragments方法。您可以从片段管理器、列表中获取片段,您可以在其中存储片段或使用某些消息系统将消息发送到片段。 IE。 EventBus 或 Otto 库或 android buildIn 功能作为 LocalBroadcatManager 或 Handler
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-16
  • 2016-03-02
相关资源
最近更新 更多