在没有标签

时间:2016-07-21 21:52:14

标签: android android-fragments android-viewpager

我有3个标签,包含3个不同的片段.. 我想在ViewPager中显示第四个片段,但我不想为此创建新的TAB ..

如何在不创建新的TabLayout项目的情况下在viewPager中显示片段?

在我的mainActivity中:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    /* CONTENT */
    setContentView(R.layout.activity_main);

    //Toolbar
    Toolbar tb = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(tb);

    //Tabs
    TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout);
    tabLayout.addTab(tabLayout.newTab().setText(R.string.tab_map));
    tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.ic_add_white_48dp));
    tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);

    for (int i = 0; i < tabLayout.getTabCount(); i++) {
        TabLayout.Tab tab = tabLayout.getTabAt(i);
        if (tab != null) tab.setCustomView(R.layout.view_tabs);
    }

    viewPager = (ViewPager) findViewById(R.id.pager);
    adapter = new PagerAdapter(getSupportFragmentManager(), tabLayout.getTabCount());
    viewPager.setAdapter(adapter);
    viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
    tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
        @Override
        public void onTabSelected(TabLayout.Tab tab) {
            viewPager.setCurrentItem(tab.getPosition());
            currentTab = tab.getPosition();
        }

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

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

    });

    viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

        }

        @Override
        public void onPageSelected(int position) {
            Log.v("Main", "Onpageselected");
            viewPager.setCurrentItem(3);
        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });


}

我不知道,下一步该做什么。

1 个答案:

答案 0 :(得分:0)

所以第四部分将成为Tabless? 您可以尝试使用Tabs手动将TabLayout添加到tabLayout.addTab(tabLayout.newTab().setText("Tab 1")),而不是使用tabLayout.setupWithViewPager(mPager),这样您就可以只设置所需的标签,其余的片段将会是Tabless。 另外,请不要忘记您还需要设置setOnTabSelectedListener(OnTabSelectedListener)setOnPageChangeListeneraddOnPageChangeListener