PagerTabStrip tabs alignment to left

android, android-viewpager

Solution

Use this before setViewPager():

sliding_tabs.setDistributeEvenly(true);

If you got this error `Cannot resolve method 'setDistributeEvenly(boolean)'`, you should update your SlidingTabLayout.java and SlidingTabStrip.java from Google I/O source code:

SlidingTabLayout.java

SlidingTabStrip

Problem

I am using PagerTabStrip to set sliding tabs. However, when I set three tabs, it shows the first tab in the center so users cannot see all three tabs at first glance. How can I align them to left? I want to move tabs to the left like this. I tried gravity, but no luck. ``` pagerTabStrip.setGravity(Gravity.LEFT); ``` This is the code for MainActivity. ``` @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ViewPager viewPager = (ViewPager) findViewById(R.id.pager); PagerTabStrip pagerTabStrip = (PagerTabStrip) findViewById(R.id.pager_tab_strip); FragmentPagerAdapter fragmentPagerAdapter = new MyFragmentPagerAdapter( getSupportFragmentManager()); viewPager.setAdapter(fragmentPagerAdapter); pagerTabStrip.setGravity(Gravity.LEFT); } ``` And ``` MyFragmentPagerAdapter extends FragmentPagerAdapter { private final String[] pageTitle = { "Entry", "History", "Report" }; public MyFragmentPagerAdapter(FragmentManager fragmentManager) { super(fragmentManager); } @Override public Fragment getItem(int position) { Fragment fragment = new PageFragment(); Bundle arguments = new Bundle(); arguments.putString("pageIndex", Integer.toString(position + 1)); fragment.setArguments(arguments); return fragment; } @Override public int getCount() { return pageTitle.length; } @Override public CharSequence getPageTitle(int position) { return pageTitle[position]; } } ``` The Problem Solved!! You need to download the latest codes from github instead of google developer page. SlidingTabLayout.java SlidingTabStrip Then, you can use setDistributeEvenly(true) like this. ``` @Override public void onViewCreated(View view, Bundle savedInstanceState) { // Get the ViewPager and set it's PagerAdapter so that it can display items mViewPager = (ViewPager) view.findViewById(R.id.viewpager); FragmentManager fragmentManager = getFragmentManager(); MyFragmentPagerAdapter adapter = new MyFragmentPagerAdapter(fragmentManager); mViewPager.setAdapter(adapter); // Give the SlidingTabLayout the ViewPager, this must be done AFTER the ViewPager has had // it's PagerAdapter set. mSlidingTabLayout = (SlidingTabLayout) view.findViewById(R.id.sliding_tabs); mSlidingTabLayout.setDistributeEvenly(true); mSlidingTabLayout.setViewPager(mViewPager); } ```

Original source

Related problems