Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set tab at position 1 in viewpager

Tags:

android

I've two tabs. By default 0's position tab is selected but i wan to select tab at 1st position. I've tried by

TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
TabLayout.Tab tab = tabLayout.getTabAt(someIndex);
tab.select();

also but it didn't work. I also search on stackoverflow and apply at position 1 but my app get crashed.

    tabLayout = (TabLayout) findViewById(R.id.tab_layout);
            tabLayout.addTab(tabLayout.newTab().setText("Add Expense"));
            tabLayout.addTab(tabLayout.newTab().setText("Add Ledger"));

            final ViewPager viewPager = (ViewPager) findViewById(R.id.pager2);
            final TabAdapter adapter = new TabAdapter(getSupportFragmentManager(), tabLayout.getTabCount());

            viewPager.setAdapter(adapter);
            viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
  tabLayout.getTabAt(1).select();

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

            }

            @Override
            public void onTabUnselected(TabLayout.Tab tab) {

            }

            @Override
            public void onTabReselected(TabLayout.Tab tab) {

            }
        });
    }

TabAdapter:

class TabAdapter extends FragmentStatePagerAdapter {
    private int mNumOfTabs;

    TabAdapter(FragmentManager fm, int NumOfTabs) {
        super(fm);
        this.mNumOfTabs = NumOfTabs;
    }

    @Override
    public Fragment getItem(int position) {

        switch (position) {

            case 0:
                return new AddExpenseFragment();

            case 1:
                return new AddLedgerFragment();

        }
        return null;
    }

    @Override
    public int getCount() {
        return mNumOfTabs;
    }
}
like image 364
Zohaib Avatar asked Aug 31 '25 22:08

Zohaib


1 Answers

Try

viewPager.setCurrentItem(position);
like image 109
Febi M Felix Avatar answered Sep 03 '25 15:09

Febi M Felix