Establecer la posición del indicador de tabulación mediante programación en la biblioteca de soporte TabLayout

En mi aplicación estoy usando TabLayout de la biblioteca de la ayuda con el pager de la visión. Tengo 3 fragmentos en él. Supongo que estoy en fragA que tiene un botón que en chascado me lleve a fragB.I soy con éxito va a fragB pero el único problema es que el El indicador de tabulación permanece en fragA.

Código

private void setupTablayout() { tabLayout = (TabLayout) findViewById(R.id.tabLayout); tabLayout.setTabGravity(TabLayout.GRAVITY_FILL); tabLayout.setupWithViewPager(viewPager); viewPager.setCurrentItem(1, true); tabLayout.getTabAt(0).setIcon(R.drawable.archive).setText(""); tabLayout.getTabAt(1).setIcon(R.drawable.status_1).setText(""); tabLayout.getTabAt(2).setIcon(R.drawable.settings).setText(""); tvHeader.setText("STATUS"); tabLayout.setOnTabSelectedListener(this); //tabLayout.setOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(viewPager)); } @Override public void onTabSelected(TabLayout.Tab tab) { viewPager.setCurrentItem(tab.getPosition()); switch (tab.getPosition()) { case 0: tab.setIcon(R.drawable.archive_1).setText(""); tvHeader.setText("ARCHIVES"); tvDate.setVisibility(View.GONE); ivRefresh.setVisibility(View.VISIBLE); break; case 1: tab.setIcon(R.drawable.status_1).setText(""); tvHeader.setText("STATUS"); tvDate.setVisibility(View.VISIBLE); ivRefresh.setVisibility(View.VISIBLE); break; case 2: tab.setIcon(R.drawable.settings_1).setText(""); tvHeader.setText("SETTINGS"); tvDate.setVisibility(View.GONE); ivRefresh.setVisibility(View.GONE); break; } } @Override public void onTabUnselected(TabLayout.Tab tab) { viewPager.setCurrentItem(tab.getPosition()); switch (tab.getPosition()) { case 0: tab.setIcon(R.drawable.archive).setText(""); break; case 1: tab.setIcon(R.drawable.status).setText(""); break; case 2: tab.setIcon(R.drawable.settings).setText(""); break; } } @Override public void onTabReselected(TabLayout.Tab tab) { viewPager.setCurrentItem(tab.getPosition()); switch (tab.getPosition()) { case 0: tab.setIcon(R.drawable.archive).setText(""); break; case 1: tab.setIcon(R.drawable.status).setText(""); break; case 2: tab.setIcon(R.drawable.settings).setText(""); break; } } class MyPagerAdapter extends FragmentPagerAdapter { public MyPagerAdapter(FragmentManager manager) { super(manager); } @Override public Fragment getItem(int position) { Fragment fragment = null; switch (position) { case 0: // tabLayout.getTabAt(0).setIcon(R.drawable.archive_1).setText(""); // tabLayout.getTabAt(1).setIcon(R.drawable.status).setText(""); // tabLayout.getTabAt(2).setIcon(R.drawable.settings).setText(""); fragment = new ArchivesFrag(); break; case 1: // tabLayout.getTabAt(0).setIcon(R.drawable.archive).setText(""); // tabLayout.getTabAt(1).setIcon(R.drawable.status_1).setText(""); // tabLayout.getTabAt(2).setIcon(R.drawable.settings).setText(""); fragment = StatusFrag.newInstance(listPosition); break; case 2: // tabLayout.getTabAt(0).setIcon(R.drawable.archive).setText(""); // tabLayout.getTabAt(1).setIcon(R.drawable.status).setText(""); // tabLayout.getTabAt(2).setIcon(R.drawable.settings_1).setText(""); fragment = new SettingFrag(); break; } return fragment; } @Override public int getCount() { return 3; } } 

FragA

 { ((Home) getActivity()).getArchiveList(); } 

2 Solutions collect form web for “Establecer la posición del indicador de tabulación mediante programación en la biblioteca de soporte TabLayout”

En lugar de

 viewPager.setCurrentItem(tab.getPosition()); 

Puedes usar,

 tab.select(); 

Ha creado el archivo .Xml para cada ficha.

Actividad principal

 public class MainActivity extends TabActivity { TabHost tabHost; TabSpec tab1,tab2,tab3,tab4; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // create the TabHost that will contain the Tabs tabHost = (TabHost)findViewById(android.R.id.tabhost); // tabHost.setOnTabChangedListener(this); TabSpec tab1 = tabHost.newTabSpec("First Tab"); TabSpec tab2 = tabHost.newTabSpec("Second Tab"); TabSpec tab3 = tabHost.newTabSpec("Third tab"); TabSpec tab4 = tabHost.newTabSpec("Fourth Tab"); // Set the Tab name and Activity // that will be opened when particular Tab will be selected tab1.setIndicator("",getResources().getDrawable(R.drawable.video)); tab1.setContent(new Intent(this,VideoActivity.class)); //tab1.setIndicator("", getResources().getDrawable(setBackgroundColor(Color.RED))); tab2.setIndicator("",getResources().getDrawable(R.drawable.images)); tab2.setContent(new Intent(this,ImagesActivity.class)); //tab2.setIndicator("", getResources().getDrawable(setBackgroundColor(Color.RED))); tab3.setIndicator("",getResources().getDrawable(R.drawable.audio)); tab3.setContent(new Intent(this,AudioActivity.class)); //tab3.setIndicator("", getResources().getDrawable(setBackgroundColor(Color.RED))); tab4.setIndicator("",getResources().getDrawable(R.drawable.favourites)); tab4.setContent(new Intent(this,Favourites.class)); //tab4.setIndicator("", getResources().getDrawable(setBackgroundColor(Color.RED))); /** Add the tabs to the TabHost to display. */ tabHost.addTab(tab1); tabHost.addTab(tab2); tabHost.addTab(tab3); tabHost.addTab(tab4); } 

Haga Xml por cada ficha / clase y declare las clases en Manifest

  • Ocultar pestañas en el visor
  • Las pestañas de Android ActionBar establecen la pestaña seleccionada inicialmente
  • Cómo Estilo ActionBar, ficha fondo en la pestaña seleccionada
  • ViewPager con un fragmento ListView - El niño especificado ya tiene un padre
  • Android: Acceder al objeto de actividad del contenedor desde el fragmento usando putExtra?
  • Cómo cambiar la pestaña seleccionada Color del texto con TabLayout de código en Android?
  • Cómo configurar la altura de las pestañas de la barra de acciones para android
  • ¿Es posible usar las pestañas AND de desplegable como navegación en la barra de acción?
  • Las pestañas de la barra de acciones que aparecen como lista desplegable
  • ¿Cómo mostrar el contador de notificaciones no leído en Tabs dentro de TabLayout?
  • La vista de fragmentos en ViewPager no se restaura al reanudar
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.