Android: 更新选项卡内容
Android: Updating tab content
我是 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
}
});
这方面的专家可以给我建议吗?
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);
}
现在在您的片段中,您可以相应地显示不同的内容。
希望对您有所帮助!
我是 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
}
});
这方面的专家可以给我建议吗?
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);
}
现在在您的片段中,您可以相应地显示不同的内容。
希望对您有所帮助!