我是Android开发的新手。我有一个ViewPager
,其中包含TabLayout
(具有固定数量的标签)。 ViewPager
有SectionPagerAdapter
(其中包含与标签对应的片段)。
现在,我想在用户选择标签时更新标签内容,并且当它变得可见时(或当用户想要刷新内容时)。
但我不确定哪种方法可以做到这一点。
到目前为止,我找到了两个解决方案:
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
}
});
有人可以咨询我吗?
答案 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);
}
现在,在您的片段中,您可以相应地显示不同的内容。
我希望这有帮助!