2016-07-21 4 views
0

Ich habe 3 Registerkarten mit 3 verschiedenen Fragmente .. Ich möchte ViewPager vierte Fragment zeigen, aber ich will keinen neuen TAB dafür schaffen ..anzeigen Fragment in Viewpager ohne Reiter

Wie es ist Ist es möglich, ein Fragment in viewPager anzuzeigen, ohne ein neues TabLayout-Objekt zu erstellen?

In meinem 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) { 

     } 
    }); 


} 

Und ich weiß nicht, was als nächstes zu tun.

Antwort

0

Also wird das vierte Fragment Tableß sein? Sie können versuchen, Tabs zu TabLayout manuell mit tabLayout.addTab(tabLayout.newTab().setText("Tab 1")) anstelle von tabLayout.setupWithViewPager(mPager), so können Sie nur die Tabs, die Sie brauchen, und der Rest der Fragmente werden Tableß werden. Vergessen Sie auch nicht, dass Sie auch setOnTabSelectedListener(OnTabSelectedListener) und setOnPageChangeListener oder addOnPageChangeListener einstellen müssen.

+0

Danke. Ja. Das vierte Fragment muss tabellarisch sein. Ich habe meinen Post bearbeitet und dort einen aktuellen Code hinzugefügt. – Chalic