在viewpager片段

时间:2017-12-13 07:33:24

标签: android android-fragments android-viewpager

考虑有一个带标题的活动。 Viewpager片段在活动内。片段将加载来自网络API的数据。

现在我需要在从API获取数据后更新活动标题。

问题

  1. 由于使用了Viewpager,它也会加载(prev),current,(next)片段。所以活动并不知道它的名称。
  2. 每个片段的每个标题都不同,所以我只有在用户查看该片段时才需要更新标题。

3 个答案:

答案 0 :(得分:0)

在您的活动中,在ViewPager上添加监听器:

    viewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener()
        {

            @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels)
            {

            }

            @Override public void onPageSelected(int position)
            {
                    //You can use switch case too
                    if (position== 0)
                    {
                          //set title
                    }
                    else if (position== 1)
                    {
                          //set title
                    }...
            }

            @Override public void onPageScrollStateChanged(int state)
            {

            }
        });

答案 1 :(得分:0)

您需要创建Activity的对象,通过使用此Object,您可以使用activity方法。

更多细节;请访问此链接。How to use method from another Class?

将此与pager的addOnPageChangeListener方法一起使用,在其中您将获得当前的寻呼机位置。

答案 2 :(得分:0)

您可以通过

Activity调用Fragment方法
  • Activity public
  • 中制作方法
  • 在片段中使用getActivty() - >将其投射到相应的Activity然后调用此方法

如果您只想在片段可见时调用Activity方法,可以尝试https://stackoverflow.com/a/42019934/5381331

在“活动”中,您希望获取当前可见的片段,可以尝试https://stackoverflow.com/a/47789367/5381331