Karol
Karol

Reputation: 5

Tabs aren't showing up (ViewPager)

I have a problem with not shwoing up tabs.
Its not giving me any error, but it doesnt work
I dont know what I'm doing wrong.
I would like to have the same functionality like in this tutorial enter link description here

Here is MainActivity:

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

    mViewPager = (ViewPager) findViewById(R.id.main_tabPager);
    setupViewPager(mViewPager);

    mTabLayout = (TabLayout) findViewById(R.id.main_tabs);
    mTabLayout.setupWithViewPager(mViewPager);
}
private void setupViewPager(ViewPager viewPager){
    SectionsPagerAdapter adapter = new SectionsPagerAdapter(getSupportFragmentManager());
    adapter.addFragment(new FavouriteFragment(), "Favourite");
    adapter.addFragment(new MostPopularFragment(), "The most popular");
    adapter.addFragment(new NewestFragment(), "The newest");
    viewPager.setAdapter(adapter);
}

Here is SectionsPagerAdapter:

private final List<Fragment> M_FRAGMENT_LIST = new ArrayList<>();
private final List<String> M_FRAGMENT_TITLE = new ArrayList<>();

public SectionsPagerAdapter(FragmentManager fm) {
    super(fm);
}

public void addFragment(Fragment fragment, String title){
    M_FRAGMENT_LIST.add(fragment);
    M_FRAGMENT_TITLE.add(title);
}

@Override
public Fragment getItem(int position) {
    return M_FRAGMENT_LIST.get(position);
}

@Override
public CharSequence getPageTitle(int position) {
    return M_FRAGMENT_TITLE.get(position);
}

@Override
public int getCount() {
    return 0;
}

Upvotes: 0

Views: 23

Answers (1)

vikas kumar
vikas kumar

Reputation: 11018

you are returning the getCount() to zero

    private final List<Fragment> M_FRAGMENT_LIST = new ArrayList<>();
private final List<String> M_FRAGMENT_TITLE = new ArrayList<>();

public SectionsPagerAdapter(FragmentManager fm) {
    super(fm);
}

public void addFragment(Fragment fragment, String title){
    M_FRAGMENT_LIST.add(fragment);
    M_FRAGMENT_TITLE.add(title);
}

@Override
public Fragment getItem(int position) {
    return M_FRAGMENT_LIST.get(position);
}

@Override
public CharSequence getPageTitle(int position) {
    return M_FRAGMENT_TITLE.get(position);
}

@Override
public int getCount() {
    return M_FRAGMENT_LIST.size();
}

Upvotes: 2

Related Questions