SlidingTabLayout和ViewPager:如何同时加载当前片段而不是相邻片段?

时间:2016-09-06 08:46:28

标签: android android-fragments android-viewpager android-tabs

我正在尝试实现一个滑动标签布局,每个片段只应在选中标签时加载而不是我得到相邻的片段加载,我已经尝试了setOffScreenPageLimit(1),因为我的代码显示但仍然相邻的片段被加载请帮忙???

private SlidingTabLayout tabLayout;
private ViewPager viewPager;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);       
    viewPager = (ViewPager) findViewById(R.id.viewpager);
    viewPager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));
    viewPager.setOffscreenPageLimit(1);
    tabLayout = (SlidingTabLayout) findViewById(R.id.tabs);
    if (tabLayout != null) {
        tabLayout.setViewPager(viewPager);
        tabLayout.setDistributeEvenly(true);
        tabLayout.setSelectedIndicatorColors(R.color.md_amber_600);
    }

1 个答案:

答案 0 :(得分:0)

我可以看到你已经将setOffScreenPageLimit用作1.这意味着你使用viewPager一次只加载一个额外的屏幕,而实际上你什么都不想加载。无法为setOffScreenPageLimit此方法设置0值,实际上您可以设置它但不起作用。

因此,使用view pager无法实现此目的。如果您仍想执行此类功能,可以使用FrameLayout并根据选项卡选择在片段之间切换。

以下是标签选择代码示例:

tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
        @Override
        public void onTabSelected(TabLayout.Tab tab) {
            switchToTab(tab.getPosition());
        }

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

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