Tabindicator не перемещается из одной в другую вкладку в tablayout, когда я сажусь между фрагментами. Выделение шрифта также не меняется

public class LoginRegister extends AppCompatActivity implements SignUpFragment.OnFragmentInteractionListener ,SignInFragment.OnFragmentInteractionListener{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login_register); final TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout_signup); tabLayout.addTab(tabLayout.newTab().setText("Sign Up")); tabLayout.addTab(tabLayout.newTab().setText("Sign in")); tabLayout.setTabGravity(TabLayout.GRAVITY_FILL); final ViewPager pager =(ViewPager) findViewById(R.id.loginpager); final SigninPagerAdapter adapter = new SigninPagerAdapter(getSupportFragmentManager(),tabLayout.getTabCount()); pager.setAdapter(adapter); tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override public void onTabSelected(TabLayout.Tab tab) { pager.setCurrentItem(tab.getPosition()); } @Override public void onTabUnselected(TabLayout.Tab tab) { } @Override public void onTabReselected(TabLayout.Tab tab) { } }); 

Когда я просканирую фрагменты, подчеркивания вкладки не меняются, но она отлично работает, когда я касаюсь вкладок. Когда я прикасаюсь к ним, индикатор вкладки хорошо скользит слева направо, а цвет шрифта вкладок также выглядит выделенным. Я думаю, проблема в этом фрагменте кода

 pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { } @Override public void onPageScrollStateChanged(int state) { } }); } @Override public void onFragmentInteraction(Uri uri) { } } 

Что делать, чтобы выделить текущую вкладку …

    Я нашел решение.

     tabLayout.setupWithViewPager(pager); 

    Этот метод легко устанавливает все.

    Изменение цвета выбранной и невыделенной вкладки. Используйте следующий код в файле LoginRegister.java:

     //tabLayout.setTabTextColors(unselectedTabColor, selectedTabColor) tabLayout.setTabTextColors(Color.parseColor("#627179"), Color.parseColor("#BF4A32")); 

    Вы не должны добавлятьTab () на вкладке, потому что вы уже настроили адаптер пейджера вида

    Сделайте следующее, и он должен работать нормально

     public class LoginRegister extends AppCompatActivity implements SignUpFragment.OnFragmentInteractionListener ,SignInFragment.OnFragmentInteractionListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login_register); final SigninPagerAdapter adapter = new SigninPagerAdapter(getSupportFragmentManager()); final ViewPager pager = (ViewPager) findViewById(R.id.loginpager); pager.setAdapter(adapter); final TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout_signup); tabLayout.setTabGravity(TabLayout.GRAVITY_FILL); tabLayout.setupWithViewPager(pager); } } 

    И SignInPagerAdapter

     public class SigninPagerAdapter extends FragmentStatePagerAdapter { public SectionsPagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { switch (position) { case 0: return SingnUpFragment.newInstance() case 1: return SignInFragment.newInstance() default: return null; } } @Override public int getCount() { //return the number of tabs you want in your tabLayout return 2; } @Override public CharSequence getPageTitle(int position) { //this is where you set the titles switch(position) { case 0: return "Sign Up"; case 1: return "Sign In"; } return null; } 

    Попробуйте добавить это в код yout:

      mTabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override public void onTabSelected(TabLayout.Tab tab) { //THIS!! if (mViewPager != null) { mViewPager.setCurrentItem(tab.getPosition()); } } @Override public void onTabUnselected(TabLayout.Tab tab) { } @Override public void onTabReselected(TabLayout.Tab tab) { } }); 

    Это решило мою проблему.