Android:正在更新标签内容

时间:2016-04-11 15:38:53

标签: android android-fragments android-tabs android-tablelayout

我是Android开发的新手。我有一个ViewPager,其中包含TabLayout(具有固定数量的标签)。 ViewPagerSectionPagerAdapter(其中包含与标签对应的片段)。

现在,我想在用户选择标签时更新标签内容,并且当它变得可见时(或当用户想要刷新内容时)。

但我不确定哪种方法可以做到这一点。

到目前为止,我找到了两个解决方案:

1)将监听器添加到TabLayout

tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() 
{
    @Override
    public void onTabSelected(TabLayout.Tab tab) 
    {
        mViewPager.setCurrentItem(tab.getPosition());
        // Update tab containts here
    }

    @Override
    public void onTabUnselected(TabLayout.Tab tab) 
    {

    }

    @Override
    public void onTabReselected(TabLayout.Tab tab) 
    {

    }
});

2)使用ViewPager.OnPageChangeListener 获取页面片段(Tab内)可见时的回调:

viewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() 
{
    @Override
    public void onPageSelected(int position) 
    {
        // Update tab containts here
    } 
});

有人可以咨询我吗?

1 个答案:

答案 0 :(得分:0)

viewpager适配器的工作方式(使用制表符)是,一旦将片段添加到viewpager,您基本上需要向片段添加内容,并让适配器管理选择给定制表符时可见的片段。

因此,只需在tabLayout上使用:OnTabSelectedListener接口,您需要做的就是`setCurrentItem(tab.getPosition());在您的viewPager参考(从您的布局)。

您可以使用这样的方法将片段添加到viewPagerAdapter:

private void setupViewPager(ViewPager viewPager){
    //then create an instance of your ViewPagerAdapter class here
    ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());

    //then add fragments for each TAB here
    //by calling a method inside your Adapter like this
    adapter.addFrag(new FragmentOne(), "TITLE HERE");
    adapter.addFrag(new FragmentTwo(), "TITLE TWO");

    //Now set your adapter here
    viewPager.setAdapter(adapter);
}

现在,在您的片段中,您可以相应地显示不同的内容。

我希望这有帮助!