2

I have maked a ViewPager with 3 Fragments:

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

I would have instead of the String Title (like Fragment 1,2...) a Image of the drawable Folder.

John Doe
  • 23
  • 2

2 Answers2

1

I'm not getting from your question that what actually you want to do! but what i assume is you want to set image instead of title of fragment. if yes then it might help you.

you can easily set icon using tabLayout object with getTabAt,setIcon() method.

tabLayout.getTabAt(i).setIcon();

you can also refer:

How to add page title and icon in android FragmentPagerAdapter

P.S if you're question is different free to ask,Thanks.

Rucha Bhatt Joshi
  • 822
  • 1
  • 15
  • 38
0

If you are using tablayout desing:

tabLayout.getTabAt(i).setIcon();

Seda T.
  • 161
  • 1
  • 4