2017-08-31 4 views
1

Je maked un ViewPager avec 3 Fragments:ViewPager image dans Fragment Titre

public class MainActivity extends AppCompatActivity { 

    TabLayout tabLayout; 
    ViewPager viewPager; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     viewPager = (ViewPager) findViewById(R.id.viewPager); 
     viewPager.setAdapter(new CustomAdapter(getSupportFragmentManager(),getApplicationContext())); 

     tabLayout = (TabLayout) findViewById(R.id.tabLayout); 
     tabLayout.setupWithViewPager(viewPager); 

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

      @Override 
      public void onTabUnselected(TabLayout.Tab tab) { 
       viewPager.setCurrentItem(tab.getPosition()); 
      } 

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

    } 


    private class CustomAdapter extends FragmentPagerAdapter { 

     private String fragments [] = {"Fragment 1","Fragment 2", "Fragment 3"}; 

     public CustomAdapter(FragmentManager supportFragmentManager, Context applicationContext) { 
      super(supportFragmentManager); 
     } 

     @Override 
     public Fragment getItem(int position) { 
      switch (position){ 
       case 0: 
        return new Fragment1(); 
       case 1: 
        return new Fragment2(); 
       case 2: 
        return new Fragment3(); 
       default: 
        return null; 
      } 
     } 

     @Override 
     public int getCount() { 
      return fragments.length; 
     } 

     @Override 
     public CharSequence getPageTitle(int position) { 
      return fragments[position]; 
     } 
    } 
} 

j'aurais au lieu du titre String (comme Fragment 1,2 ...) une image du dossier drawable.

Répondre

0

Je ne comprends pas ce que vous voulez vraiment faire! mais ce que je suppose, c'est que vous voulez définir l'image au lieu du titre du fragment. Si oui, cela pourrait vous aider.

Vous pouvez facilement définir l'icône en utilisant l'objet tabLayout avec la méthode getTabAt, setIcon().

tabLayout.getTabAt(i).setIcon(); 

vous pouvez également consulter:

How to add page title and icon in android FragmentPagerAdapter

P.S si vous êtes question est différente de demander gratuitement, Merci.

+0

Oui, merci. Je veux définir l'image à la place du titre du fragment: D –

+0

Comment puis-je définir la taille de l'icône? –

+0

bonjour, que voulez-vous dire par défini la taille de l'icône? –