2017-08-31 5 views
1

ich einen ViewPager mit 3 Fragmente maked haben:ViewPager Bild in Fragment Titel

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]; 
     } 
    } 
} 

Ich würde anstelle des String-Titel haben (wie Fragment 1,2 ...) ein Bild des ziehbar Ordner.

Antwort

0

Ich komme nicht aus Ihrer Frage, was Sie eigentlich tun möchten! Aber ich nehme an, Sie wollen das Bild anstelle des Fragmenttitels setzen. Wenn ja, dann könnte es dir helfen.

Sie können einfach Symbol mit tabLayout Objekt mit getTabAt, setIcon() -Methode setzen.

tabLayout.getTabAt(i).setIcon(); 

können Sie auch finden:

How to add page title and icon in android FragmentPagerAdapter

P. S, wenn Sie Fragen zu fragen ist anders, Danke.

+0

Ja, danke. Ich möchte ein Bild anstelle des Titelfragments setzen: D –

+0

Wie kann ich die Größe des Icons bestimmen? –

+0

Hallo, was meinst du mit der Größe des Symbols definitiv? –